题目:戳这里

题意:一个点在[1,n]以内,我们可以进行4500次查询,每次查询之后,该点会向左或向右移动0~k步,请在4500次查询以内找到该点。

解题思路:一边二分,一边随机。

交互题似乎有好多是二分,上次交互题的二分调了好久,这次也是。我出数据水平又很低,所以至今不知道哪些数据可以卡哪些二分的写法,只能改一次交一次。。。

 1 #include <cstdio>
2 #include <cstring>
3 #include <algorithm>
4 #include <string>
5 #include <vector>
6 #include <map>
7 #include <cmath>
8 #include <iostream>
9 #include <random>
10 #include <ctime>
11 using namespace std;
12 typedef long long ll;
13 const int maxn = 1e6 + 10;
14 char ans[11];
15 bool ask(ll l, ll r)
16 {
17 //printf("$$$$");
18 printf("%lld %lld\n", l, r);
19 fflush(stdout);
20 scanf("%s", ans);
21 if(ans[0] == 'Y')
22 {
23 if(l == r) exit(0);
24 else return 1;
25 }
26 else return 0;
27 }
28 int na[maxn];
29 int main()
30 {
31 ll n, k;
32 srand(time(NULL));
33 scanf("%lld %lld", &n, &k);
34 ll l = 1, r = n;
35 while(l <= r)
36 {
37 ll mid = l + (r - l) / 2;
38 if(ask(l, mid))
39 {
40 r = mid;//注意这点,我的理解是mid可能就是我们要找的点,如果用常规写法r=mid-1会把这个点跳过去
41 //但我试了几个样例,发现在区间不断变化且有随机数的情况下,及时r=mid-1也能找到答案。。
42 }
43 else
44 {
45 l = mid + 1;
46 }
47 l = max(1ll, l - k);
48 r = min(n, r + k);
49 mid = l + rand()%(r - l + 1);
50 ask(mid, mid);
51 l = max(1ll, l - k);
52 r = min(n, r + k);
53 }
54 return 0;
55 }

最新文章

  1. Excel中VBA进行插入列、格式化、排序
  2. html5 video标签兼容性与自定义控件
  3. 《Automatic Face Classification of Cushing’s Syndrome in Women – A Novel Screening Approach》学习笔记
  4. MVC设计模式
  5. 转载-python学习笔记之常用模块用法分析
  6. ****Git 常用命令和使用思维导图
  7. android的平台架构及特性
  8. css滚动条样式
  9. 在InstallShield中发布单一的Setup.exe文件
  10. Linux误删C基本运行库libc.so.6处理方法
  11. ( 转 ) WebApiTestClient 的使用
  12. 新概念英语(1-55)The Sawyer family
  13. tornado+websocket+mongodb实现在线视屏文字聊天
  14. Home Assistant-自动化设备
  15. flask登录插件 flask-login
  16. LeetCode(106):从中序与后序遍历序列构造二叉树
  17. static, const
  18. Orangegreenworks封装rpgmakermv
  19. svn下载地址
  20. 【转】单片机中volatile定义的作用详解

热门文章

  1. Linux TCP漏洞 CVE-2019-11477 CentOS7 修复方法
  2. MySQL全面瓦解20:可编程性之流程控制语句
  3. 过压保护IC和带LDO模式的Li+充电器前端保护IC
  4. python_mmdt:从0到1--实现简单恶意代码分类器(二)
  5. Markdown里常用的HTML元素
  6. CMU数据库(15-445)-实验2-B+树索引实现(中)删除
  7. 新编日语1234册/重排本/全册 pdf
  8. CobalStrike 4.0 生成后门几种方式 及 主机上线后基础操作
  9. 京东零售mockRpc实践
  10. layui的tabletree扩展组件