当前位置: 首页 > news >正文

2025 吉林CCPC

文章目录

  • 2025 吉林CCPC
    • A.交互题
    • F.字符串(暴力、后缀和)
    • D.互质(最大素数间隔)
    • 总结

2025 吉林CCPC

题目链接:

Dashboard - The 18th Jilin Provincial Collegiate Programming Contest - Codeforces

sdccpc20250527 - Virtual Judge

A.交互题

实质上就是两个分数比大小。

虽然没写出来,不过自己的思路是正确的,值得庆幸。

不然,连一个分数比较大小都没想到解决办法,那更丢人了。

  • a,b,c,d 都是正整数。
  • 真分数来比较更优
  • 分数越大,倒数越小,成反比
  • 如果是99/100 可以换成 1/100,来比较相当于一个二分(这种循环进行400次就够了)

这样就形成初步的思路。

还有几个注意事项:

运算过程不能溢出,一旦出现“err”就会WA

起初我是通过判断是否溢出,来确定谁大谁小,这种方法不可取。

注意次数!!!

超过6666,就会err

次数太少就会找不到答案!

整除!!!分子变成0啦

具体:

在循环中,将其换成真分数,如果a/b不等于 c/d ,直接得出答案

**考虑整除使得分子变成 0 **

其中一个变成0 ,就确定了分数大小。

将分数换成倒数,这时候又变成了假分数。

不断循环。

分子分母颠倒,改变变量,不改变值,减少操作次数。循环里询问9次,循环大概需要进行737~740次。

这个数据范围很重要!!!

string check(){string s;cin >> s;return s;
}
void solve(){int f=0,p=740;string t ,tt;char aa='a',bb='b',cc='c',dd='d';while(p--){cout << "/ r0 "<<aa<<' '<<bb<< endl;check();cout << "/ r1 "<<cc<<" "<<dd << endl;check();cout << "? r0 r1" << endl;t=check();if(t!="="){if(f==0) cout << "! " << t << endl;else{if(t=="<") cout << "! >"<< endl;else cout << "! <"<< endl;}check();return ;}cout << "* r1 r1 "<<dd << endl;check();cout << "* r0 r0 "<<bb << endl;check();	cout << "- "<<aa<<' '<<aa<<" r0"<< endl;check();cout << "- "<<cc<<' '<<cc<<" r1"<< endl;check();cout<<"? "<<aa<<" r2"<<endl;t=check();cout<<"? "<<cc<<" r2"<<endl;tt=check();if(t=="="&&tt=="="){cout<<"! ="<<endl;check();return;}else if(t=="="){if(f==0)cout<<"! <"<<endl;elsecout<<"! >"<<endl;check();return;}	 	 else if(tt=="="){if(f==0)cout<<"! >"<<endl;elsecout<<"! <"<<endl;check();return;}f^=1;char w;w=aa;aa=bb,bb=w;w=cc;cc=dd;dd=w;	 }cout<<"* "<<aa<<" "<<aa<<" "<< dd<<endl; check();cout<<"* "<<cc<<" "<<cc<<" "<< bb<<endl; check();cout<<"? "<<aa<<' '<< cc<<endl;   t=check();if(f==0) cout<<"! "<<t<<endl;else{if(t=="<") cout << "! >"<< endl;else if(t==">") cout << "! <"<< endl;else cout<<"! ="<<endl;}check();return ;
}

F.字符串(暴力、后缀和)

题目数据比较水,暴力就可以过,O(n*n)

可以优化为O(n) ,用两次后缀和

int a[N];
void solve()
{ int n,ans=0;cin>>n;string s;cin>>s;fir_(i,n-1,0){if(s[i]=='f')a[i]+=1;a[i]+=a[i+1];//计算后缀f的数量}fir_(i,n-2,0){a[i]+=a[i+1];//计算后缀f 的总距离if(s[i]=='e')ans+=a[i+1];}cout<<ans<<'\n';
}

D.互质(最大素数间隔)

暴力可解

在1e15范围内,出现最大素数间隔才 1132.

4e7范围内,最大220.

素数之间的间隔很小

总结

赛时:6道

A题不可惜,因为赛后WA了好几发才A.

今天的题目比较简单,大家过题数差不多,

同样凡过的题都没有WA

相关文章:

  • 缩量资金迁徙下的短期博弈
  • C++11特性:可变参数模板
  • npm/yarn/pnpm安装时Sharp模块报错解决方法
  • Debian 系统 Python 开发全解析:从环境搭建到项目实战
  • 域控账号密码抓取
  • Debian 11之解决daemon.log与syslog文件占用空间过大问题
  • Spring Boot微服务架构(六):伪装的微服务有哪些问题?
  • 微服务及容器化设计--可扩展的架构设计
  • Vue组件技术全解析大纲
  • vue3 getcurrentinstance 用法
  • Ubuntu实现和主机的复制粘贴 VMware-Tools(open-vm-tools)
  • ​扣子Coze飞书多维表插件-查询数据
  • [图文]图6.3会计事项-Fowler分析模式的剖析和实现
  • WebSocket学习总结
  • MySQL数据库第一章
  • Introduction to SQL
  • SQLord: 基于反向数据生成和任务拆解的 Text-to-SQL 企业落地方案
  • sqli_labs第二十九/三十/三十一关——hpp注入
  • 【手写数据库核心揭秘系列】第9节 可重入的SQL解析器,不断解析Structure Query Language,语言翻译好帮手
  • [STM32学习笔记(九)]CubeMX项目使用系统定时器SysTick的中断服务函数进行定时
  • 电商网页设计网站/互动营销策略
  • 网站建立使用方法/淘宝推广
  • 网站开发建设公司/广州百度推广电话
  • 写网站代码/艺考培训学校
  • 深圳罗湖网站制作/杭州网站定制
  • 微信企业号可以做微网站吗/百度关键词首页排名