CF1153E Serval and Snake(交互题)
题目
CF1153E Serval and Snake
很有意思的一道交互题
做法
我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数
根据这个性质查询每一行每一列,我们大体能知道两端的位置
查询矩阵时也是这个道理(奇数),可以二分行和列从而得出答案
Code
#include<bits/stdc++.h>
typedef int LL;
LL n;
LL fir_1,fir_2,sec_1,sec_2;
inline LL Check(LL x,LL y,LL _x,LL _y){
LL val;
printf("? %d %d %d %d\n",x,y,_x,_y);
fflush(stdout);
scanf("%d",&val);
return val;
}
int main(){
std::cin>>n;
for(LL i=1;i<n;++i){
LL val(Check(i,1,i,n));
if(val&1){
if(fir_1) sec_1=i;
else fir_1=i;
}
}
if(!sec_1 && fir_1) sec_1=n;
for(LL i=1;i<n;++i){
LL val(Check(1,i,n,i));
if(val&1){
if(fir_2) sec_2=i;
else fir_2=i;
}
}
if(!sec_2 && fir_2) sec_2=n;
if(fir_1 && fir_2){
LL l=1,r=n;
while(l!=r){
LL mid(l+r>>1);
if(Check(fir_1,l,fir_1,mid)&1) r=mid;
else l=mid+1;
}
LL ret(l);
if(ret==fir_2){
printf("! %d %d %d %d\n",fir_1,ret,sec_1,sec_2);
}else{
printf("! %d %d %d %d\n",fir_1,ret,sec_1,fir_2);
}
}else{
if(fir_1){
LL l=1,r=n;
while(l!=r){
LL mid(l+r>>1);
if(Check(fir_1,l,fir_1,mid)&1) r=mid;
else l=mid+1;
}
LL ret(l);
printf("! %d %d %d %d\n",fir_1,ret,sec_1,ret);
}else{
LL l=1,r=n;
while(l!=r){
LL mid(l+r>>1);
if(Check(l,fir_2,mid,fir_2)&1) r=mid;
else l=mid+1;
}
LL ret(l);
printf("! %d %d %d %d\n",ret,fir_2,ret,sec_2);
}
}
return 0;
}
CF1153E Serval and Snake(交互题)的更多相关文章
- Codeforces Round #551 (Div. 2) E. Serval and Snake (交互题)
人生第一次交互题ac! 其实比较水 容易发现如果查询的矩阵里面包含一个端点,得到的值是奇数:否则是偶数. 所以只要花2*n次查询每一行和每一列,找出其中查询答案为奇数的行和列,就表示这一行有一个端点. ...
- CF1153E Serval and Snake
题目地址:CF1153E Serval and Snake 这是一道交互题 由于只需要确定起点和终点 你选择的矩形会将整个矩形分成的两个部分 如果起点和终点在同一个部分里,那么很显然回答应该是个偶数 ...
- CF1153E Serval and Snake【构造】
题目链接:洛谷 这道题是很久以前NTF跟我说的,现在想起来把它做了... 我们发现,如果蛇的两头都在矩形里或矩形外,则询问为偶数,否则为奇数. 所以我们询问每一行和每一列,就能知道蛇的两头的横纵坐标了 ...
- 交互题[CF1103B Game with modulo、CF1019B The hat、CF896B Ithea Plays With Chtholly]
交互题就是程序与电脑代码的交互. 比如没有主函数的程序,而spj则给你一段主函,就变成了一个整体函数. 还有一种就是程序和spj之间有互动,这个用到fflush(stdout);这个函数就可以实现交互 ...
- CF1114E Arithmetic Progression(交互题,二分,随机算法)
既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...
- Codeforces 1137D - Cooperative Game - [交互题+思维题]
题目链接:https://codeforces.com/contest/1137/problem/D 题意: 交互题. 给定如下一个有向图: 现在十个人各有一枚棋子(编号 $0 \sim 9$),在不 ...
- Gym - 101375H MaratonIME gets candies 交互题
交互题介绍:https://loj.ac/problem/6 题意:输出Q X ,读入><= 来猜数,小于50步猜出就算过样例 题解:根本不需要每次输出要打cout.flush()... ...
- Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)
https://codeforces.com/contest/1061/problem/F 题意 假设存在一颗完全k叉树(n<=1e5),允许你进行最多(n*60)次询问,然后输出这棵树的根,每 ...
- Codeforces Round #371 (Div. 2) D. Searching Rectangles 交互题 二分
D. Searching Rectangles 题目连接: http://codeforces.com/contest/714/problem/D Description Filya just lea ...
随机推荐
- My97DatePicker设置,包括隐藏 清空,设置最大日期等 转载
My97DatePicker是一款非常灵活好用的日期控件.使用非常简单. 1.下载My97DatePicker组件包 2.在页面中引入该组件js文件: <script type=&quo ...
- DLL入口函数
BOOL APIENTRY DllMain(HINSTANCE hInst /* Library instance handle. */, DWORD reason /* Rea ...
- 160415、sql语句sort排序,sort为空的在后面
按sort排序,sort为空的在后面 select * from 表名 order by (case when sort is null or sort='' then 1 else 0 end),s ...
- Code Forces 644B Processing Queries
B. Processing Queries time limit per test5 seconds memory limit per test256 megabytes inputstandard ...
- Results from queries can be retrieved into local variables
w将查询结果赋值给本地变量. http://dev.mysql.com/doc/refman/5.7/en/stored-program-variables.html Results from que ...
- 关于一个非常非常无语的bug,与君共勉
今天,哦,不对,是昨天晚上,我花了大概四十分钟去找一个bug,结果还没找到 错误代码" $('#sendAreaInfo').citypicker('reset'); $('#sendAre ...
- Unable to locate parent package [json-default]
Unable to load configuration. - [unknown location] Caused by: Unable to locate parent package [json- ...
- Yii框架2.0的 验证码
最近看了一个Yii的教程视频,是按1.1的版本讲的,我想用Yii2.0的框架也参考他的学习开发下,结果发现好多不一样的,现在就说说验证码的事 首先加入一个actions 做验证码图片的显示,实际事调用 ...
- 【react 样式】给react组件指定style
1.使用行内样式(优先级高) 自定义的react组件是没有style属性的,如果要给想给自定义react组件指定style,我的方法是用一个<div>包裹自定义组件,然后给div指定sty ...
- 出现 Request Entity Too Large问题的解决方法
根据经验判断应该是上传文件大小被限制了,检查了应用配置是10M,把它设置成100M,重启服务也不能解决问题. 原来我们的tomcat是通过nginx发现服务代理的,问题就出现nginx服务器上,原来n ...