UOJ 405(IOI2018 D1T1)
交互题
有一个长为$N$的由$A,B,X,Y$组成的字符串$S$,其中首字母不会重复出现。给定$N$,求$S$,可以询问一个字符串的最长的为$S$前缀的子串长度,询问次数不超过$N+2$即为满分,询问串长度不超过$4N$。
$$1\le N\le2000$$
考虑先$2$次问出首字母,则之后可以用首字母作“分隔符”,然后考虑每个字符依次询问。
对于第$2$到第$N-1$个字符,设当前答案串为$T$,三个不是首字母的字符分别为$p,q,r$,则如果询问$TpTqpTqqTqr$,则可以根据返回值的不同确定当前字符,最后用$2$次询问问出第$N$个字符即可。
1 const std::string C[4] = {"A", "B", "X", "Y"}; 2 3 std::string guess_sequence(int N) { 4 int first = press("AB") ? press("B") : press("Y") + 2; 5 std::string answer = C[first]; 6 int x, y, z, cur = 0; 7 FOR(j, 0, 4) { 8 if (j == first) { 9 continue; 10 } 11 ++ cur; 12 switch (cur) { 13 case 1: 14 x = j; 15 break; 16 case 2: 17 y = j; 18 break; 19 case 3: 20 z = j; 21 break; 22 } 23 } 24 FOR(i, 2, N) { 25 int result = press(answer + C[x] + answer + C[y] + C[x] + answer + C[y] + C[y] + answer + C[y] + C[z]); 26 if (result == i - 1) { 27 answer += C[z]; 28 } else if (result == i) { 29 answer += C[x]; 30 } else { 31 answer += C[y]; 32 } 33 } 34 if (N != 1) { 35 if (press(answer + C[x]) == N) { 36 answer += C[x]; 37 } else if (press(answer + C[y]) == N) { 38 answer += C[y]; 39 } else { 40 answer += C[z]; 41 } 42 } 43 return answer; 44 }
转载于:https://www.cnblogs.com/sjkmost/p/10357739.html
UOJ 405(IOI2018 D1T1)相关推荐
- 神奇的幻方2015提高组d1t1
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- UOJ #311「UNR #2」积劳成疾
需要锻炼$ DP$能力 UOJ #311 题意 等概率产生一个长度为$ n$且每个数在[1,n]间随机的数列 定义其价值为所有长度为$ k$的连续子数列的最大值的乘积 给定$ n,k$求所有合法数列的 ...
- 洛谷 P2615 [NOIP2015 D1T1] 神奇的幻方
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,--,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. ...
- 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed
使用第三方SDK(如微信.qq.快看.头条等),调用接口405 Method Not Allowed 错误描述:postman请求正常,但客户端调用后接口没有反应,但返回了405错误. 解决方法:第三 ...
- uoj 117 欧拉回路
1.判断是否为欧拉存在欧拉回路---裸的判断 欧拉回路就是看一笔能不能把途中所有的边跑完没得重复 对于无向边----建立双向边判断每个点的入度是否为2的倍数 1.1 对于有向边---建立单向边判断 ...
- UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP
题目链接 UOJ #7 题解 首先这一定是DP!可以写出: \[f[i] = \min_{ancestor\ j} \{f[j] + (d[j] - d[i]) * p[i] + q[i]\}\] 其 ...
- 405 not allowed_无偿献血走进山东科技大学 405名爱心师生献血14万毫升
半岛网11月4日讯清晨冷冽的秋风挡不住莘莘学子们奉献热血的真情!为保障近期岛城临床紧急用血需求,山东科技大学的师生们响应号召,组织了主题为"捐献青春热血,共筑温情山科"的活动,在这 ...
- 洛谷P3688/uoj#291. [ZJOI2017]树状数组
传送门(uoj) 传送门(洛谷) 这里是题解以及我的卡常数历程 话说后面那几组数据莫不是lxl出的这么毒 首先不难发现这个东西把查询前缀和变成了查询后缀和,结果就是查了\([l-1,r-1]\)的区间 ...
- httpposterror_http请求405错误方法不被允许的解决 (Method not allowed)
由于自己疏忽,导致请求错误405,然后前端数据传输没错,百度大都说跟post提交方式有关,改成get还是报错,检查才知道,controller中忘记写@requestMapping("/XX ...
最新文章
- java ognl表达式_java -------ognl表达式入门
- Java 遍历HashTable
- 机器学习深度学习研究者最重要的11张速查表
- 拥抱开放,Serverless 时代的下一征程
- 马尔可夫随机场数学原理理解
- 【图论】Kruskal算法求最小生成树详解
- python配置文件读取环境变量_转载:Python项目读取配置的几种方式
- mc用什么版本的java_我的世界网易 Java 版哪个版本比较好?
- KindEditor上传图片和修改图片
- 校长办公室管理系统c语言,【锦城故事】学软硬结合理论做智慧超群系统是锦城电子的必经之路...
- 2022年3月17日YYC松鼠短视频v4.2.6更新-增加详细的站点信息统计图表
- 【R_绘图】绘图字体设为Times New Roman
- Hibernate框架基础——cascade属性
- SCU - 4572 醉后不知天在水,满船清梦压星河【思维】
- SpringBoot库存管理系统,拿来学习太香了(附源码)
- Niushop 商品海报
- “入坑”自媒体写作,我有干货与你分享
- SoundPool类简介与适用场合
- 三菱M80系统服务器,三菱M80系统故障维修实例分享
- 仙剑五手游服务器维护,仙剑奇侠传五手游进不去怎么办 仙剑奇侠传五黑屏闪退解决方法...
热门文章
- SAP gateway 后台系统的 OData service 服务探测机制实现原理
- SAP CRM Fiori participant的图片显示调试全过程
- Jerry Wang诚邀广大SAP同仁免费加入我的知识星球,共同探讨SAP技术问题
- always on sql 收缩日志_使用alwayson后如何收缩数据库日志的方法详解
- 单片机c语言必背代码_【典藏】深度剖析单片机程序的运行(C程序版)
- 电脑怎么python转行_零基础转行DA系列|一周Python for Data Science入门
- 学python还是java贴吧_是学python还是java?一张图告诉你!
- visual studio 2019 HTML怎么自动生成代码_敲代码和编程适合什么样的笔记本?深度推荐...
- python模拟太阳系_用 Python 动态模拟太阳系运转
- linux var目录满了,Linux入门教程:/var/spool/clientmqueue 占满根目录