欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces 1103

发布时间:2025/6/17 编程问答 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Codeforces 1103 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

A.

水题

Code

#include<bits/stdc++.h> using namespace std; int main(){string s;cin>>s;int cnt0=0,cnt1=0;for(char i:s){if(i=='0')cout<<(cnt0?"1 1\n":"3 1\n"),cnt0^=1;else cout<<(cnt1?"1 1\n":"1 3\n"),cnt1^=1;}return 0; }

B.

特判 \(a=1\)
先询问 \((i,2i)\) 倍增出一个区间 \(2^x,2^{x+1}\) ,然后询问 \((2^x,2^x+i)\) 二分出答案。
正确性请自行理解。

Code

#include<bits/stdc++.h> using namespace std; char s[10]; char query(int x,int y){printf("? %d %d\n",x,y);fflush(stdout);scanf("%s",s);if(*s=='e')exit(0);return *s; } int main(){while(scanf("%s",s),*s=='s'){if(query(0,1)=='x'){printf("! 1\n");fflush(stdout);continue;}int i;for(i=2;;i*=2){if(query(i,i/2)=='y')break;}int l=i/2,r=i,mid,ans=-1;while(l<=r){mid=(l+r)>>1;if(query(mid,i/2)=='y')ans=mid,r=mid-1;else l=mid+1;}printf("! %d\n",ans);fflush(stdout);}return 0; }

C.

转载于:https://www.cnblogs.com/BlogOfchc1234567890/p/11545309.html

总结

以上是生活随笔为你收集整理的Codeforces 1103的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。