【Codeforces Round #516_div2_E】【二分交互题】Dwarves, Hats and Extrasensory Abilities
题意:
给出 n ,接下来n次交互。每次你输出一个点的二维坐标,然后系统返回 black 或者 white ,表示这个点是白色点还是黑色点。
全部结束之后,你需要输出一条直线将上述的所有白色点和黑色点分开在两边。
思路:
这是一个用二分来写的交互题。
交互题与普通题唯一的区别就是,每次输出之后,记得清空缓存区,即fflush(stdout);
首先给出一个初始点,(5,0) 作为初始点,如果它第一个点是黑点,则标记左边的所有点为黑,如果为白,则标记左边的所有点 为白。
然后直到题目给出一个不一样颜色的点之后,将剩下所有的点放到 y = 10 这一行上,现在为了说明,来进行一个模拟。
假如左边为黑,右边为白,且现在已经到了 y = 10 这一行上。
l = 5,r = 1e9,取 (mid,10) 输出,假如返回的是黑,则 二分区间向右边挤压,为了保证左边点全为黑,l = mid+1;
假如返回的是白,则二分区间向左边积压,保证右边点全为白,r = mid-1 。
这样子二分知道n个点输出完毕,然后 y = 0 这一行取一个黑白分界点,y = 10 取一个黑白分界点,将这两个点连起来即可分割所有黑白点。
反思:
这场cf的时候写完D就剩下15min了,然后就放弃了E...还是自己实力不足啊,写个D题这样的bfs都写这么久,实在是太需要加强自己的能力了...
代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#define rep(i,a,b) for(int i = a; i <= b; i++)
using namespace std;int n,jud;
char s[10];
char p1,p2;
int l,r;
int ans1,ans2;
int h1,h2;void solve1()
{
// printf("1\n");int mid = (l+r)>>1;printf("%d 0\n",mid);fflush(stdout);scanf("%s",s);if(s[0] == p1){h1 = mid;l = mid+1;} else{jud = 1;ans1 = (h1+mid)>>1;h1 = 6;l = 6, r = 1e9;}
}void solve2()
{
// printf("1\n");int mid = (l+r)>>1;printf("%d 10\n",mid);fflush(stdout);scanf("%s",s);if(s[0] == p1){l = mid+1;h1 = mid;}else{r = mid-1;h2 = mid;}
}int main()
{ans1 = 0, ans2 = 0;h1 = 0, h2 = 1e9;scanf("%d",&n);jud = 0;l = 6, r = 1e9-5;printf("5 5\n");h1 = 5;fflush(stdout);scanf("%s",s);if(s[0] == 'b') p1 = 'b', p2 = 'w';else p1 = 'w', p2 = 'b';rep(i,1,n-1){if(jud == 0) solve1();else solve2();}if(ans1 == 0){ans1 = (h1+(int)1e9)>>1;printf("%d 0 %d 10\n",ans1,ans1);}else{ans2 = (h1+h2)>>1;printf("%d 0 %d 10\n",ans1,ans2);}return 0;
}
【Codeforces Round #516_div2_E】【二分交互题】Dwarves, Hats and Extrasensory Abilities相关推荐
- 【交互题+二分】Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities
Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities 题意: 输出一个点,输入是黑色或者白色,n次询问后,输出一条直线,是 ...
- [Codeforces Round #516][Codeforces 1063C/1064E. Dwarves, Hats and Extrasensory Abilities]
题目链接:1063C - Dwarves, Hats and Extrasensory Abilities/1064E - Dwarves, Hats and Extrasensory Abiliti ...
- 【codeforces】1063C Dwarves, Hats and Extrasensory Abilities【二分】
1063C Dwarves, Hats and Extrasensory Abilities [题目描述] 传送门 [题解] 二分法放点就可以了,第一个点在(0,0),然后二分这个点(mid,mid) ...
- codeforces1064E Dwarves, Hats and Extrasensory Abilities
目录 codeforces1064E Dwarves, Hats and Extrasensory Abilities 题意: 题解: Code: codeforces1064E Dwarves, H ...
- CF1063C Dwarves, Hats and Extrasensory Abilities
CF1063C Dwarves, Hats and Extrasensory Abilities 题意: 首先题目会给出 n ,表示要输入多少点. 然后你输出n 个点的坐标,每输出一个点会告诉你这个点 ...
- Codeforces ~ 1063C ~ Dwarves, Hats and Extrasensory Abilities (交互题,二分)
题意 交互题.N次,让你每次输出一个点的坐标,然后他告诉你当前点的颜色(黑或白).使得可以找到一条直线把黑点和白点分隔开.最终输出这条直线过的两个点.输入输出均为正数,分为为0~1e9 思路 我们把所 ...
- Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities
原题链接:https://codeforces.com/contest/1064/problem/E 题意: 交互题. 给你一个n,让你每次输出一个点,系统会告诉你这个点是黑还是白,让你观察完n个点之 ...
- Codeforces #1063C Dwarves, Hats and Extrasensory Abilities
题目大意 交互题. 输出平面上的一个点的坐标,交互程序给这个点染色(白或黑). 如此重复 $n$ 次($ 1\le n \le 30$). 要求输出的 $n$ 个点各不相同,并且不论交互程序怎样给它们 ...
- codeforces 1064 E. Dwarves, Hats and Extrasensory Abilities (交互题,二分)
题目:http://codeforces.com/contest/1064/problem/E 题意:给定n个点,要求每次自己给出一个点的坐标(整数点),这时系统会给出该点的颜色(黑或白),要求最后存 ...
- cf1064E. Dwarves, Hats and Extrasensory Abilities(二分 交互)
题意 题目链接 \(n\)次操作,每次你给出一个点的坐标,系统会返回该点的颜色(黑 / 白),程序最后输出一条直线把所有黑点和白点分隔开 Sol 一个很直观的想法:首先询问\((dx, 0)\),然后 ...
最新文章
- 活动目录管理之五种常见错误操作
- 编程范式,程序员的编程世界观
- post 返回代码_减少冗长代码,利用DDT轻松分离测试数据
- 团队-游戏《石头,剪刀,布》-团队一阶段互评
- .net生成文字图片
- java开发环境怎样选择_怎样搭建Java开发环境?
- LeetCode刷题(48)--Remove Duplicates from Sorted List II
- bzoj 1085: [SCOI2005]骑士精神(IDA*)
- 【OS】Process Thread
- back to wuxi
- 提取关键字 结巴分词_结巴分词5--关键词抽取
- unbuntu20.04下载opencv4.5.2
- 太极计算机股份有限公司面试经历
- win10,ubuntu18.04系统下图像识别YOLOv5菠萝_附菠萝数据集图片标签
- bat命令修改文件夹的后缀名
- Fresher的特殊求和
- for (char c : s)这种循环方式的使用
- EM算法(算法原理+算法收敛性)
- BUUCTF rsarsa
- DRILL(Sigcomm'17)阅读笔记
热门文章
- IOS错误---“A valid provisioning profile for this executable was not found”
- IT界那些性感的让人尖叫的程序员
- codeigniter_MY_Model
- 软件外包中常见的七个错误之一 - 不懂用户需求
- Python的随机矩阵生成
- OpenCV-图像处理(17、Sobel算子)
- nyoj20吝啬得过度(DFS)
- 大数阶乘 nyoj28
- linux 主机支持远程唤醒_linux 通过wol远程开机【转】
- modulenotfounderror python_你所不知道的 【ModuleNotFoundError: No module named ''; '' is not a package】...