#交互,dp#洛谷 7998 [WFOI - 01] 猜数(guess)

news/发布时间2024/5/18 15:47:32

题目传送门


分析

首先要搞清楚,交互库的自适应会让区间长度尽可能增大(答案自适应)

也就是说,如果现在区间为 \([l,r]\),你选取的区间为 \([l',r']\)

那么交互库会让你的区间变成 \([l,r'-1]\)\([l'+1,r]\) 中区间更长的那一个,不妨枚举这个长度

\(dp[i]\) 表示区间长度为 \(i\) 时的最小询问总代价,也就是要决定下一步让交互库缩短到的区间长度,设其为 \(j\)

那么就要保证 \(1\leq i-j+1\leq j\leq n\),且此时询问代价为 \(\frac{1}{j-(i-j+1)+1}=\frac{1}{2j-i}\)

那么 \(dp[i]=\min_{\lceil\frac{i+1}{2}\rceil\leq j\leq i}\{dp[j-1]+\frac{1}{2j-i}\}\)

按照最优决策点决策就能将总代价卡在能过的范围内,且 \(j\) 的选取可以将范围缩小到 \(p[i-1]\pm \Delta\)

由于并不需要非常精确地求出最小的 dp 值,所以这样预处理的复杂度就是 \(O(n\Delta)\)


代码

#include <iostream>
using namespace std;
const int N=100011;
double dp[N]; int n,pos[N];
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n,pos[1]=1;for (int i=2;i<=n;++i){dp[i]=i;int L=max((i+2)>>1,pos[i-1]-800);int R=min(i,pos[i-1]+800);for (int j=L;j<=R;++j){double t=dp[j-1]+1.0/(j-(i-j+1)+1);if (dp[i]>t) dp[i]=t,pos[i]=j;}}int l=1,r=n;while (l<r){int lmid=r-pos[r-l+1]+1,rmid=l+pos[r-l+1]-1,x,opt;cout<<"? "<<lmid<<' '<<rmid<<'\n',cout.flush();cin>>x>>opt;switch (opt){case 0:{l=x+1;break;}case 1:{cout<<"! "<<x<<'\n';cout.flush();l=r=x;break;}case 2:{r=x-1;break;}}}cout<<"! "<<l<<'\n';cout.flush();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/05570366.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

DNF pvf 各版本客户端下载大全

整个客户端,pvf文件占1600多个G全部版本文件获取: https://githubs.xyz/y16.html60版本,70版本,86,86版本,90等全部都有纯净月魂86版本月魂的初版,没有任何修改。 怪物难度强度大。也是我最推荐的版本。朝暮,追忆,原仿官都有。 算了,我摊牌了,基本上什么版本都有。6…

python包:torchsummary

利用torchsummary观察每一层的情况1)按照方式 pip install torchsummary 2)

16.5k star,开源推荐,go语言写的堡垒机

16.5k star,开源推荐,go语言写的堡垒机 原创 大侠之运维 大侠之运维 2024-05-04 00:02 江西teleport是一款go语言写的堡垒机,目前已经开源,可以自己部署体验下,teleport适合主机、kubernetes、数据库、RDP以及web服务。传送门:https://github.com/gravitational/teleport…

国芯科技产品系列

国芯科技产品系列 GX8003 高性能离线语音识别芯片 产品简介 GX8003是面向离线语音识别市场推出的高性能低成本SoC芯片。它集成了国芯第二代神经网络处理器 gxNPU V200,集成音频ADC、DAC,内置晶振和Flash。芯片支持高性能的语音唤醒,和自定义的离线语音指令识别。具有识别率高…

4.3万字详解PHP+RabbitMQ(AMQP协议、通讯架构、6大模式、交换机队列消息持久化、死信队列、延时队列、消息丢失、重复消费、消息应答、消息应答、发布确认、故障转移、不公平分发、优先级、等)

理论(后半部分有实操详解) 哲学思考易经思维:向各国人讲述一种动物叫乌龟,要学很久的各国语言,但是随手画一个乌龟,全世界的人都能看得懂。 道家思维:努力没有用(指劳神费心的机械性重复、肢体受累、刻意行为),要用心(深度思考、去感悟、透过现象看本质)才有用。 举…

如何批量复制多个文件到多个目录中(提取匹配法)

首先,需要用到的这个工具:度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 具体操作1、情景再现 我这里创建了3个数字命名的文件夹和一些带有数字命名的图片文件。(这里仅做演示作用,实际操作的数量肯定巨大。)观察一下发现,图片分2种命名:一种是数字.png,另一种是-数字.pn…