CF1729E Guess the Cycle Size 题解
Div.3 出交互题了,好感动。
因为询问次数限制为
对于两个点
因为交互库会从两条路径中随机选择一条,这样,我们对于点
我们设
注意特判输出
可以证明,这种算法出锅的概率几乎为 while(1),将 WA 变成 TLE。因为 CF 对 TLE 的程序会重测 3 遍,所以在其他随机化算法出锅概率比较大的交互题中,这种方法十分好用。
放代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
main(){
ios::sync_with_stdio(false);
for(int i=2;i<=26;i++){
cout<<"? 1 "<<i<<endl;
int x; cin>>x;
if(x==-1){
cout<<"! "<<i-1<<endl;
return 0;
}
cout<<"? "<<i<<" 1"<<endl;
int y; cin>>y;
if(x!=y){
cout<<"! "<<x+y<<endl;
return 0;
}
}
while(1);
}