Dwarves, Hats and Extrasensory Abilities Codeforces - 1063C
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的更多相关文章
- [Codeforces Round #516][Codeforces 1063C/1064E. Dwarves, Hats and Extrasensory Abilities]
题目链接:1063C - Dwarves, Hats and Extrasensory Abilities/1064E - Dwarves, Hats and Extrasensory Abiliti ...
- 【交互 细节题 思维题】cf1064E. Dwarves, Hats and Extrasensory Abilities
第一次做交互真有趣……:挺好的细节思维题 This is an interactive problem. In good old times dwarves tried to develop extr ...
- CodeForces 1063C. Dwarves, Hats and Extrasensory Abilities 交互
题目大意: 依次给定$n$个点的颜色,要求给定这$n$个点的坐标以及一条可以把他们分成两部分的直线 强制在线(交互) $n \leqslant 30$ 感觉自己真像一个乱搞... 我们只考虑把点放在最 ...
- Codeforces #1063C Dwarves, Hats and Extrasensory Abilities
题目大意 交互题. 输出平面上的一个点的坐标,交互程序给这个点染色(白或黑). 如此重复 $n$ 次($ 1\le n \le 30$). 要求输出的 $n$ 个点各不相同,并且不论交互程序怎样给它们 ...
- CF1064 E - Dwarves, Hats and Extrasensory Abilities
题意 交互题, 本来应该是在平面上进行的. 实际上换成一条直线就可以, 其实换成在平面上更复杂一些. Solution 假设\(l\)点是黑点, \(r\)处是白点, 那么就把下一个点的位置放置在\( ...
- cf1064E. Dwarves, Hats and Extrasensory Abilities(二分 交互)
题意 题目链接 \(n\)次操作,每次你给出一个点的坐标,系统会返回该点的颜色(黑 / 白),程序最后输出一条直线把所有黑点和白点分隔开 Sol 一个很直观的想法:首先询问\((dx, 0)\),然后 ...
- Codeforces Round #516 (Div. 2) (A~E)
目录 Codeforces 1064 A.Make a triangle! B.Equations of Mathematical Magic C.Oh Those Palindromes D.Lab ...
- Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)
题目链接 A. Make a triangle! 题意 让某段最少增加多少使得构成三角形 思路 让较小两段往最长段去凑 代码 #include <bits/stdc++.h> #defin ...
- Codeforces Round #516(Div 2)
比赛链接:传送门 A. Make a triangle!(简单思维) 题目大意: 给你三条边,问你最多加多少长度能使这三条边能构成三角形. 思路: 最大边小于答案加另外两条边的和. #include ...
随机推荐
- 迁移学习算法之TrAdaBoost ——本质上是在用不同分布的训练数据,训练出一个分类器
迁移学习算法之TrAdaBoost from: https://blog.csdn.net/Augster/article/details/53039489 TradaBoost算法由来已久,具体算法 ...
- RTMP协议的理解
RTMP协议:real time message protocol 工作原理: 先采集摄像头视频和麦克风音频信息,再进行音视频的编码(mpeg),通过FMLE(Flash Media Live Enc ...
- codeforces 702D D. Road to Post Office(数学)
题目链接: D. Road to Post Office time limit per test 1 second memory limit per test 256 megabytes input ...
- codeforces 664B B. Rebus(乱搞题)
题目链接: B. Rebus time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- ubuntu下安装显卡驱动
前言 以下内容是个人学习之后的感悟,转载请注明出处~ 作者的显卡是GT 730,现以NVIDIA-Linux-x86-384.69为例. 1.打开终端,先删除旧的驱动: sudo ...
- 关于window.event.srcElement 和 window.event.target(触发事件的对象)
转自:https://www.cnblogs.com/zhilingege/p/7423817.html window.event.srcElement 是指触发事件的对象 <script ...
- fullpage中高度错误的解决方法
今天我再用fullpage写全屏页面的时候,发现在ie中,一整屏的页面总是不能铺满,高度总是少一截儿,各种搜索,找到了个合适的方法,这里记录下,也希望给之后遇到这个问题的人提供一种方式,当然不一定能解 ...
- 关于git被误删除的分支还原问题
在开发过程中, 有可能会将正在开发的本地分支误删, 本地分支被删除时, 如果已经将本地分支的变更推送到了远端, 还没有问题, 如果被删除的本地分支只提交了没有推送到远端, 就悲剧了, 相当于在你上一次 ...
- 【网络爬虫】【java】微博爬虫(一):小试牛刀——网易微博爬虫(自定义关键字爬取微博数据)(附软件源码)
一.写在前面 (本专栏分为"java版微博爬虫"和"python版网络爬虫"两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github ...
- 3-3 浮点型字面量 & 3-4浮点型案例
双精度的浮点类型,末尾加d或者D 3-4浮点型案例 如果一个浮点类型的末尾什么也不写 他表示就是一个double类型的.所以这里定义报错了. float f=1234.328; 把一个范围大的数赋值给 ...