题目

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(交互题)的更多相关文章

  1. Codeforces Round #551 (Div. 2) E. Serval and Snake (交互题)

    人生第一次交互题ac! 其实比较水 容易发现如果查询的矩阵里面包含一个端点,得到的值是奇数:否则是偶数. 所以只要花2*n次查询每一行和每一列,找出其中查询答案为奇数的行和列,就表示这一行有一个端点. ...

  2. CF1153E Serval and Snake

    题目地址:CF1153E Serval and Snake 这是一道交互题 由于只需要确定起点和终点 你选择的矩形会将整个矩形分成的两个部分 如果起点和终点在同一个部分里,那么很显然回答应该是个偶数 ...

  3. CF1153E Serval and Snake【构造】

    题目链接:洛谷 这道题是很久以前NTF跟我说的,现在想起来把它做了... 我们发现,如果蛇的两头都在矩形里或矩形外,则询问为偶数,否则为奇数. 所以我们询问每一行和每一列,就能知道蛇的两头的横纵坐标了 ...

  4. 交互题[CF1103B Game with modulo、CF1019B The hat、CF896B Ithea Plays With Chtholly]

    交互题就是程序与电脑代码的交互. 比如没有主函数的程序,而spj则给你一段主函,就变成了一个整体函数. 还有一种就是程序和spj之间有互动,这个用到fflush(stdout);这个函数就可以实现交互 ...

  5. CF1114E Arithmetic Progression(交互题,二分,随机算法)

    既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...

  6. Codeforces 1137D - Cooperative Game - [交互题+思维题]

    题目链接:https://codeforces.com/contest/1137/problem/D 题意: 交互题. 给定如下一个有向图: 现在十个人各有一枚棋子(编号 $0 \sim 9$),在不 ...

  7. Gym - 101375H MaratonIME gets candies 交互题

    交互题介绍:https://loj.ac/problem/6 题意:输出Q X ,读入><= 来猜数,小于50步猜出就算过样例 题解:根本不需要每次输出要打cout.flush()... ...

  8. Codeforces Round #523 (Div. 2) F. Katya and Segments Sets (交互题+思维)

    https://codeforces.com/contest/1061/problem/F 题意 假设存在一颗完全k叉树(n<=1e5),允许你进行最多(n*60)次询问,然后输出这棵树的根,每 ...

  9. Codeforces Round #371 (Div. 2) D. Searching Rectangles 交互题 二分

    D. Searching Rectangles 题目连接: http://codeforces.com/contest/714/problem/D Description Filya just lea ...

随机推荐

  1. HDU4417 (Super Mario)

    题目链接:传送门 题目大意:一个大小为 n 的数组,m组询问,每组询问[x,y]内<=v的数的数量. 题目思路:主席树(注意询问时数组下标越界问题) #include <iostream& ...

  2. ios 开发环境,证书和授权文件

    一.成员介绍1.    Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1)    Developer Certification(开发证书)安装在电脑上 ...

  3. linux的简单查找的方法

    catalina.out文件查找指定行sed -n 346492p catalina.out 查找第几到第几行sed -n 346200,346692p catalina.out 查找指定内容(不区分 ...

  4. SQL server 数据库升级版本问题解决办法

    在升级或安装数据库的时候,会遇到数据库版本不对的问题,无论怎么升级,升级提示成功了,但打开数据库发现还是原来那个版本.甚至出现重装数据库之后,登陆页面已经提示安装的是新版本了,但登陆进去之后,发现数据 ...

  5. 170420、maven内置常量

    Maven工程插件配置中通常会用到一些Maven变量,因此需要找个地方对这些变量进行统一定义,下面介绍如何定义自定义变量. 在根节点project下增加properties节点,所有自定义变量均可以定 ...

  6. 《Apologize》歌曲

    OneRepublic,中译名“共和时代”,是美国的一个流行摇滚乐队,曲风走流行.独立摇滚的路线.2006年天使专辑<Dreaming Out Loud>诞生,主打<Apologiz ...

  7. [LeetCode] 7.Reverse Integer - Swift

    Reverse digits of an integer. Example1: x = , return Example2: x = -, return - 题目意思:对一个整型进行反转 实现代码: ...

  8. npm install命令对package-lock.json文件自动做了一些额外的更新

    今天我使用 npm 命令给项目安装file-saver,通过git却发现package-lock.json中除了file-saver组件之外的其他组件的记录也被改了 npm为何会自动做这些更改呢,又如 ...

  9. Xception

    Xception(Deep Learning with Depth-wise Separable convolutions)——google Inception-V3 Xception 并不是真正意义 ...

  10. Linux上的下载软件uGet

    uGet是一款开源下载软件,类似于我们常用的迅雷,不过uGet支持的操作系统非常多,Ubunut,Arch,openSUSE,Windows,MacOS,BSD等. uGet支持两个下载引擎:curl ...