codeforces415D. Glad to see you!(交互)
题意
交互题。
有$k$个值域为$[1, n]$的数。
请在不超过$60$次询问内找出其中的两个数。
每次询问形式为1 x y
交互库会返回$|x - a| <= |y - b| ? "TAK" : "NIE"$
其中$a, b$分别是使得$|x - a|,|y - b|$最小的且存在于序列中的数。
Sol
若询问$x, x + 1$的结果为“TAK”,说明在$1, x$内一定有解。
我们可以不断这样二分下去。直到找到一个解。
再在$1, x - 1$和$x +1, N$中重复以上操作,找到另一组解。
#include<iostream>
using namespace std;
int N, K;
string Yes = "TAK";
int check(int x) {
if(x + > N) return ;
printf("1 %d %d\n", x, x + );
fflush(stdout);
string buf;
cin >> buf;
return buf == Yes ? : ;
}
int Query(int l, int r) {
int ans = -;
while(l <= r) {
int mid = l + r >> ;
if(check(mid)) r = mid - , ans = mid;
else l = mid + ;
}
return ans;
}
int main() {
ios::sync_with_stdio(false); cin.tie();
cin >> N >> K;
int a1 = Query(, N);
int a2 = Query(, a1 - );
int a3 = Query(a1 + , N);
printf("2 %d %d", a1, a2 == - ? a3 : a2);
return ;
}
codeforces415D. Glad to see you!(交互)的更多相关文章
- Codeforces.810D.Glad to see you!(交互 二分)
		
题目链接 \(Description\) 有一个大小为\(k\)的集合\(S\),元素两两不同且在\([1,n]\)内.你可以询问不超过\(60\)次,每次询问你给出\(x,y\),交互库会返回\(\ ...
 - Glad to see you! CodeForces - 810D (交互+二分)
		
This is an interactive problem. In the output section below you will see the information about flush ...
 - 【二分+交互】codeforces B. Glad to see you!
		
codeforces.com/contest/809/problem/B 只需要找到2个被选中的,首先,注意到将区间二等分时左侧区间为[l,mid],右侧区间为[mid+1,r],dui(mid,mi ...
 - OpenGL开发学习指南二(glfw+glad)
		
版权声明:本文为博主原创文章,未经博主允许不得转载.blog.liujunliang.com.cn https://blog.csdn.net/qq_33747722/article/details/ ...
 - CF 810 D. Glad to see you!
		
codeforces 810 D. Glad to see you! http://codeforces.com/contest/810/problem/D 题意 大小为k的集合,元素的范围都在[1, ...
 - CodeForces 809B Glad to see you!
		
Glad to see you! 题解: 交互题一般都是需要用二分去完成. 在二分时候每次检查左边和右边哪边会和答案更近, 然后在更近的那段新区间去重复检查, 知道区间长度为1. 在检查的时候,可以使 ...
 - Sublime Text3配置在可交互环境下运行python快捷键
		
安装插件 在Sublime Text3下面写代码感觉很不错,但是写Python的时候遇到了一些问题. 用Sublime Text3打开python文件,或者在Sublime Text3下写好pytho ...
 - JS与APP原生控件交互
		
"热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...
 - Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
		
前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...
 
随机推荐
- Collections工具类、Map集合、HashMap、Hashtable(十八)
			
1.Map集合概述和特点 * A:Map接口概述 * 去重复, * 查看API可以知道, * 将键映射到值的对象, * 一个映射不能包含重复的键, * 每个键最多只能映射到一个值.* B:Map接口和 ...
 - python-dev 安装错误
			
/******************************************************************** * python-dev 安装错误 * 说明: * 今天在安 ...
 - 子集枚举好题UVA1354
			
题目 分析:枚举子集以及关于该子集的补集,然后用子集去暴力构造一颗二叉树,注意左边的最远距离不一定来自于左子树,右边的最远距离也不一定来自于右子树 #include "iostream&qu ...
 - Code:zabbix 目录
			
ylbtech-Code:zabbix 目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://y ...
 - node+pjax实现不刷新跳转
			
做前端的都知道如果通过a标签去访问跳转到某一个页面,浏览器会自动刷新.那么如何实现不刷新跳转? html5的出现让我们可以实现不刷新跳转页面.主要使用的方法:history.pushState(dat ...
 - [官方教程] Unity 5 BLACKSMITH深度分享 - 汇总帖
			
BLACKSMITH深度分享系列 相信此大片在Unite上的惊艳亮相,让许多人至今无法忘却它所带来的震撼,Unity的大师们为了让更多Unity开发者了解此大片是如何用Unity5诞生的,深度分享了多 ...
 - python __builtins__ complex类 (13)
			
13.'complex', 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数.如果第一个参数为字符串,则不需要指定第二个参数. class complex(ob ...
 - 第三篇 .NET高级技术之深拷贝和浅拷贝
			
深拷贝.浅拷贝 如果拷贝的时候共享被引用的对象就是浅拷贝,如果被引用的对象也拷贝一份出来就是深拷贝.(深拷贝就是说重新new一个对象,然后把之前的那个对象的属性值在重新赋值给这个用户) using S ...
 - 自定义层or网络
			
目录 Outline keras.Sequential Layer/Model MyDense MyModel Outline keras.Sequential keras.layers.Layer ...
 - 使用Spring MVC的@RequestBody注解接收Json对象字符串
			
最近公司在开发移动APP,APP上通过jQuery提交表单的json字符串格式数据到Java后端,之前通过request手动接收,非常麻烦,其实Spring MVC已经为我们提供了一个注解@Reque ...