codeforces1103B 二分交互题
程序员文章站
2022-05-22 10:46:27
...
手速场,半小时做完就开始挂机了。
群里有人提出了用v和2v去比较
然后我想起了曾经一道交互题是拿二进制去试探,先加大的,再加小的,看行不行。
这样如果如果v%a<2v%a,那么a>2v,如果输出x,那么v<a<2v
就可以确定a的上下区间,分别是v和2v。
然后再去二分mid,每次输出v和mid,找到v%a<mid%a的mid的最大值。那么mid+1就是a
当时寝室4个人中,我先说二进制试探,然后lts已经差不多完全想出来了,然而wa on test 3.确实确定上下区间后没考虑清楚接下来怎么办。。。感觉再冷静下来想一想就差不多了。还是菜。。。
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
while(s!="end")
{
int l=0,r=1;
printf("? %d %d\n",l,r);
cin>>s;
while(s=="y")
{
l=r,r<<=1;
printf("? %d %d\n",l,r);
fflush(stdout);
cin>>s;
}
int mid;
while(l+1<r)
{
mid=(l+r)>>1;
printf("? %d %d\n",l,mid);
fflush(stdout);
cin>>s;
if(s=="y")
l=mid;
else
r=mid;
}
printf("! %d\n",l+1);
fflush(stdout);
cin>>s;
}
}
推荐阅读
-
图论小结(一)包括一些最短路,最小生成树,差分约束,欧拉回路,的经典题和变种题。强连通,双连通,割点割桥的应用。二分匹配
-
Java~利用二分查找完成牛客经典算法题--查找旋转数组的最小数字
-
[Leetcode][第410题][JAVA][分割数组的最大值][动态规划][二分]
-
cf1064E. Dwarves, Hats and Extrasensory Abilities(二分 交互)
-
【JAVA】判断二分图——力扣每日一题(四)(2020.07.16)
-
PAT_甲级_1050 String Subtraction (20分) (C++)【签到题/二分查找/字符串处理】
-
680. 剪绳子 (浮点型二分)AcWing寒假每日一题 入门组(2)
-
二分查找方法 leetcode题
-
VBA实现触发器过程制作填空题等交互式课件
-
PPT巧用动画效果触发器制作选择题等交互式课件