题意

交互题。

有$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 ;
}

最新文章

  1. 传智博客.NET培训第13季 Ajax教程(共十三季) 学习资源
  2. Ubuntu技巧之 is not in the sudoers file解决方法
  3. win8中如何禁用屏幕旋转的快捷键
  4. uva 10910
  5. bzoj 2707 [SDOI2012]走迷宫(SCC+高斯消元)
  6. C#与.Net Framework的各种版本和联系
  7. TCP全连接队列和半连接队列已满之后的连接建立过程抓包分析[转]
  8. leetcode — generate-parentheses
  9. CentOS7使用firewalld和selinux
  10. Spring基础(2):bean顺序创建
  11. Dynamics CRM Online Administrator password reset
  12. 【问题收集·中级】关于XMPP使用Base传送图片
  13. Eclipse 写 Python的一些小问题
  14. 《内存数据库和mysql的同步机制》
  15. [域|Domain] The trust relationship between this workstation and the primary domain failed 此工作站和主域间的信任关系失败
  16. HBase的常用Java API
  17. selinux-网络服务安全
  18. 随机森林和adaboost算法(待更新)
  19. Spring MVC框架下 从后台读取数据库并显示在前台页面【笔记自用 不推荐作为参考】
  20. python 基础 1.5 python数据类型(四)--字典

热门文章

  1. (linux)SD卡初始化-mmc_sd_init_card函数
  2. react native 中的redux 理解
  3. 如何查看一个Application是32位的还是64位的?
  4. MYSQL初级学习笔记八:MySQL中常用的函数!(视频序号:初级_45-50)
  5. Tomcat版本是32位、64位问题
  6. Gym - 100342J:Triatrip(Bitset加速求三元环的数量)
  7. BZOJ1453: [WC2005]Dface双面棋盘
  8. linux基于流的文件操作
  9. Mysql基础调优
  10. 算法练习--LeetCode--29. Divide Two Integers