当前位置: 首页 > news >正文

题解:CF1483E Vabank

题意:交互题。现在有个隐藏的数 \(M\),你可以询问 \(X\)\(M\) 的大小关系,如果 \(X\le M\) 则你会增加 \(X\) 块钱,如果 \(X>M\) 你需要支付 \(X\) 块钱,如果你付不起就挂了。初始有 \(1\) 块钱,要找出 \(M\) 是多少,最多 \(105\) 次询问。\(M\le 10^{14}\)

做法:

首先我们先不管支付的事情,那么就是直接二分,有付钱这个事情就不是很好做,直接二分的话我们需要补次钱。我们一开始肯定还是直接倍增,这样刚好是在我有钱的前提下尽量扩大范围去找。同时这样可以更快地缩小范围,方便我们去补钱这一部分最多需要用掉 \(47\) 次操作。

然后我们这个时候就可以找出来答案应该在 \([2^x,2^{x+1})\) 这个范围内,这个时候我们再去进行二分。

但是这里有个问题,正常的二分向左向右是没有什么去别的,这里向左是有负的代价而向右是有正的贡献的,并不是同等地位的,所以我们其实应该考虑适当地向左偏移一点,这样去平衡一下两侧的代价。假设我取在整条线段的 \(\frac{1}{p}\) 的位置,那么向左一次,我们就需要补 \([1,2]\) 次钱,\(1\) 次钱居多,最少的步数就是 \(2\log_p(r-l)\) 次,这里 \([l,r)\) 是确定的答案区间。那么因为剩下 \(58\) 次操作,就大概要求 \(\frac 1 p \ge 0.3\) 左右,实则并没有这么严因为这本身就是个比较松的做法。

然后我们考虑怎么取这个位置,那我这里肯定是和钱有关的,我的钱越多肯定是更不怕挂掉的,当我怎么用钱都不会挂的时候就全部二分就行;当我没钱的时候,我肯定是取在 \(\frac{1}p\)。因为我不会分析,所以我认为放置位置关于钱数是线性的。粗略地估计最大钱数,那就是每次都挂掉我还能继续二分,大概是 \(l\log_2(r-l)+r-l\),就是每轮先认为要 \(l\) 块钱再算一下剩下的贡献,取 \(\frac 1 p = 0.3\),实测可以在 \(103\) 次内解决。

(尝试卡了几下但是最后还是在 \(103\) 次止步了。)

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
int nwc;
bool query(int x) {cout << "?" << " " << x << endl;string s; cin >> s;if(s == "Lucky!") {nwc += x;return 1;}elsenwc -= x;return 0;
}
void solve() {nwc = 1;int bs = 1;while(bs <= (int)(1e14)) {if(!query(bs))break;bs <<= 1;}int lp = (bs >> 1), rp = min((int)(1e14), bs - 1) + 1;while(lp + 1 < rp) {int mid = lp + rp >> 1, len = rp - lp, pos;double rat = log2(len) * lp + 2 * (mid - lp);if(nwc >= rat) pos = mid;else {double t = 0.3 + 0.2 * nwc / rat;pos = lp + (rp - lp) * t;}while(nwc < pos)query(lp);if(query(pos))lp = pos;elserp = pos;}cout << "! " << lp << endl;
}
signed main() {int T; cin >> T;while(T--)solve();return 0;
}
http://www.rkmt.cn/news/22488.html

相关文章:

  • AngularJS:构建更智能的Web应用框架
  • 什么是BPM流程自动化?从“财务报销”入手,一文读懂企业效率引擎
  • Pasos和RAFT算法
  • 25w41a快照测评:鹦鹉螺成精了?长矛教你戳穿末影人!
  • Day15-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\classlei
  • RAG检索质量差?这5种分块策略帮你解决70%的问题
  • 本地链路地址
  • 体育
  • 计算机视觉在自动化质检中的应用
  • js代码、js文件混淆、加密
  • Salesforce推出AI版Setup,说句话就能搞定配置?
  • 火山引擎Data Agent再拓新场景,重磅推出用户研究Agent
  • 2025年西安买房攻略Top10:揭秘高性价比学区房与第四代住宅新趋势
  • 2025年西安购房热点:学区房与地铁盘终极指南
  • 2025年铝复合板厂家Top10排名:一站式服务引领行业新潮流
  • 2025年铝复合板厂家十大排名榜单:行业权威推荐与选择指南
  • 2025年市面上桥架品牌Top10权威推荐榜:专业选购指南
  • 微擎:让每个创意都能开花的小程序生态引擎
  • 哥德尔不完备定理中的完备是什么?是还原论证的具足幻想。不还原就是完备,哥德尔搞不完定理
  • JavaScript性能优化实战:从指标到落地的全链路方案 - 指南
  • 2025 年最新软瓷生产厂家推荐榜单:聚焦前沿技术与优质服务,助力精准筛选可靠软瓷材料供应商软瓷墙砖/软墙砖/外墙软瓷砖/外墙软瓷片厂家推荐
  • 百度地图打开地图不显示具体内容
  • livedream
  • 2025年方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔方钢/冷拉冷拔扁钢/冷拉冷拔圆钢/冷拉冷拔六角钢/冷拉冷拔异型钢/热轧方钢扁钢厂家最新权威推荐榜
  • 2025 年国内弹簧厂商最新推荐排行榜:聚焦定制与精密制造,精选的优质企业高温压力阀/电磁阀/调压阀/阀类/汽车弹簧厂家推荐
  • 使用AWS Security Hub自动业务上下文验证加速安全发现审查
  • 【论文复现上新】NeurIPS 2023! 经典论文! DPO:你的语言模型,其实就是个奖励模型 | 强化学习 | 微调策略
  • 多通道采集仪 振弦、温度、模拟量 基建健康 监测工程结构安全
  • 2025 年碳晶板厂家最新推荐榜权威发布:涵盖木纹 / 白色 / 全屋整装等品类,西南及全国优质品牌甄选指南
  • 题解:qoj7837 挑战积和式