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
- 下一篇: 定时器 线程池\进程池