https://codeforces.com/contest/1063/problem/C

首先可以想到一个简单做法:先钦定这个直线的斜率k=-1,然后设直线y=-x+b

设黑点放直线上方;如果已知(x,y)是黑点,那么y>-x+b,b<x+y

如果已知(x,y)是白点,那么b>x+y

可以二分b,对于每个b输出任意合法(x,y)满足x+y=b,然后根据结果更新b的范围

这样子初始时b可以为[1,2e9-1],可以发现log2(2e9)超过30了

然而试一下可以发现这样子会A不掉。。。发现有时会刚好少1次机会

然后我就不会了...期间还尝试了一些乱搞,然而发现那么写除了让自己pretestpassed并且FST以外什么用也没有(提交后WA59)

看了题解,发现很简单:只要开始时询问一个角上的点,比如询问右上角,如果是黑色,那么仍然按上面方法,如果是白色,那么设直线上方应该放的点为白点,然后仍然按上面方法

哎,我还是太菜了

错误记录:

1.写成fflush(input)

2.CF不能只输出\n,必须手动fflush(output)

 #include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
char tmp[],c;
int n;
int main()
{
int l,r,mid,t,i;
scanf("%d",&n);
printf("%d %d\n",,);
fflush(stdout);
scanf("%s",tmp);
c=tmp[];
if(n==)
{
printf("%d %d %d %d\n",,,,);
return ;
}
l=;r=-;
for(i=;i<=n;++i)
{
mid=l+((r-l)>>);
t=mid/;
printf("%d %d\n",t,mid-t);
fflush(stdout);
scanf("%s",tmp);
if(tmp[]==c) r=mid-;
else l=mid+;
}
mid=l+((r-l)>>);
t=mid/;
printf("%d %d %d %d\n",t,mid-t,t+,mid-t-);
return ;
}

Dwarves, Hats and Extrasensory Abilities Codeforces - 1063C的更多相关文章

  1. [Codeforces Round #516][Codeforces 1063C/1064E. Dwarves, Hats and Extrasensory Abilities]

    题目链接:1063C - Dwarves, Hats and Extrasensory Abilities/1064E - Dwarves, Hats and Extrasensory Abiliti ...

  2. 【交互 细节题 思维题】cf1064E. Dwarves, Hats and Extrasensory Abilities

    第一次做交互真有趣……:挺好的细节思维题 This is an interactive problem. In good old times dwarves tried to develop extr ...

  3. CodeForces 1063C. Dwarves, Hats and Extrasensory Abilities 交互

    题目大意: 依次给定$n$个点的颜色,要求给定这$n$个点的坐标以及一条可以把他们分成两部分的直线 强制在线(交互) $n \leqslant 30$ 感觉自己真像一个乱搞... 我们只考虑把点放在最 ...

  4. Codeforces #1063C Dwarves, Hats and Extrasensory Abilities

    题目大意 交互题. 输出平面上的一个点的坐标,交互程序给这个点染色(白或黑). 如此重复 $n$ 次($ 1\le n \le 30$). 要求输出的 $n$ 个点各不相同,并且不论交互程序怎样给它们 ...

  5. CF1064 E - Dwarves, Hats and Extrasensory Abilities

    题意 交互题, 本来应该是在平面上进行的. 实际上换成一条直线就可以, 其实换成在平面上更复杂一些. Solution 假设\(l\)点是黑点, \(r\)处是白点, 那么就把下一个点的位置放置在\( ...

  6. cf1064E. Dwarves, Hats and Extrasensory Abilities(二分 交互)

    题意 题目链接 \(n\)次操作,每次你给出一个点的坐标,系统会返回该点的颜色(黑 / 白),程序最后输出一条直线把所有黑点和白点分隔开 Sol 一个很直观的想法:首先询问\((dx, 0)\),然后 ...

  7. Codeforces Round #516 (Div. 2) (A~E)

    目录 Codeforces 1064 A.Make a triangle! B.Equations of Mathematical Magic C.Oh Those Palindromes D.Lab ...

  8. Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)

    题目链接 A. Make a triangle! 题意 让某段最少增加多少使得构成三角形 思路 让较小两段往最长段去凑 代码 #include <bits/stdc++.h> #defin ...

  9. Codeforces Round #516(Div 2)

    比赛链接:传送门 A. Make a triangle!(简单思维) 题目大意: 给你三条边,问你最多加多少长度能使这三条边能构成三角形. 思路: 最大边小于答案加另外两条边的和. #include ...

随机推荐

  1. Windows下配置PHPUnit(pear已弃用,使用phpunit.phar)

    一.配置PHPUnit 首先到PHPUnit官网(点此进入)下载相应的版本.php 5.5及以下版本请使用PHPUnit 4.8.得到 .phar 文件,并把名字改为 phpunit.phar . 把 ...

  2. [haoi2015]T1

    题意:给定你一颗树,要求你在这棵树中确定K个黑点和N-K个白点,使黑点间与白点间两两距离之和最大,输出最大值.n<=2000 对于这道题,我想了好几个思路,包括点分治,贪心,动规,网络流等等,实 ...

  3. 常用的PHP类库,PHP开发者必备【转】

    PHP开发者常用的PHP类库和组件 PDF 生成器 FPDF - 这量一个可以让你生成PDF的纯PHP类库. Excel 相关 你的站点需要生成Excel?没有问题,下面这两个类库可以让你轻松做到这一 ...

  4. python学习笔记:第二天(基本数据类型)

    Python3 基本数据类型 1.标准数据类型 Python3中有六个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictio ...

  5. 解决 Git 冲突的 14 个建议和工具

    Git 非常善于合并代码.代码的合并在本地完成,快速而且灵活.正常情况下每次从不同分支合并内容时,冲突有可能会发生.通常解决冲突很简单,就如同知道(如何)选择(保留)重要的更改一样,而有时解决冲突则需 ...

  6. poj3181【Dollar Dayz】

    做完这道题,心里五味陈杂,明明是最水的一道题,我却做了最长的时间. 题意是求用1-k的和表示n的方案数. 显然是个计数dp,但我不会.思考半小时未果. 然后找尹鹏哲,他给我讲了个错的dp方程,结果调试 ...

  7. Git学习笔记 - Git安装

    Git安装(Windows) 从 https://git-for-windows.github.io/ 下载Git,下载完成,双击安装,一路选择默认设置即可. 注意:选择使用git的命令行模式,选择默 ...

  8. SPOJ:D-query(非常规主席树求区间不同数的个数)

    Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) ...

  9. ++i和i++的效率孰优孰劣

    在内建数据类型的情况下,效率没有区别: 在自定义数据类型的情况下,++i效率更高! 分析: (自定义数据类型的情况下) ++i返回对象的引用: i++总是要创建一个临时对象,在退出函数时还要销毁它,而 ...

  10. 爬虫库之BeautifulSoup学习(三)

    遍历文档树: 1.查找子节点 .contents tag的.content属性可以将tag的子节点以列表的方式输出. print soup.body.contents print type(soup. ...