Codeforces 1103
生活随笔
收集整理的这篇文章主要介绍了
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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Codeforces 1188
- 下一篇: 定时器 线程池\进程池