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

CF1061F Lost Root 题解 / 随机化 交互

题面传送门:CF1061F Lost Root。

首先对于一个路径 \(a,b\),我们可以 \(n\) 次询问得到长度,我发现对于一个深度为 \(dep\)\(k\) 叉树来说,直径长度为 \(2dep-1\),因此我们可以随机路径来找到直径。

考虑计算一下概率二叉树 \(\frac{2^{dep-2} \times 2^{dep-2}}{(2^{dep}-1)^2}\approx \frac{1}{16}\),随机个 \(30\) 次基本上就能找到了,而对于 \(k>2\) 叉树随到直径的概率显然更高。

由于根一定在直径上且直径的长度为 \(\log\) 量级,我们可以暴力枚举直径上的点,然后判断离叶子的距离是否为 \(dep\) 即可。

#include<bits/stdc++.h>
#define int long long
#define double long double
using namespace std;
inline int read(){char c=getchar();int f=1,ans=0;while(c<48||c>57) f=(c==45?f=-1:1),c=getchar();while(c>=48&&c<=57) ans=(ans<<1)+(ans<<3)+(c^48),c=getchar();return ans*f;
}
mt19937_64 randd(time(0));
inline int ask(int a,int b,int c){printf("? %lld %lld %lld\n",a,b,c);fflush(stdout);string s;cin>>s;return s=="Yes"?1:0;} 
const int N=2010;
int vis[N];
main(){int n=read(),k=read();int dep=0,tmp=n*(k-1)+1;while(tmp!=1) dep++,tmp/=k;while(1){int a=randd()%n+1,b=randd()%n+1,sum=0;for (int i=1;i<=n;i++) sum+=(vis[i]=ask(a,i,b));if (sum==2*dep-1){for (int i=1;i<=n;i++) if (vis[i]){int cnt=0;for (int j=1;j<=n;j++) cnt+=ask(a,j,i);if (cnt==dep){printf("! %lld\n",i);fflush(stdout);return 0;}}}}return 0;
}
http://www.jsqmd.com/news/346914/

相关文章:

  • spacedesk网络设置副屏 windows 不需要himi
  • 双桅杆起重机非线性建模与控制-EXP-整形控制-起重机
  • 力扣hot100 - 108、将有序数组转换为二叉搜索树
  • 【组合意义】ARC212C ABS Ball
  • iTerm2 的清屏命令
  • 2026国内最新最新电解电容企业top5推荐!广东广州等地优质电子配套服务商权威榜单发布,资质服务双优助力产业高效发展 - 品牌推荐2026
  • 基于深度学习的肺音分类算法研究
  • 道路场景行人检测及逆行行为识别研究-大数据深度学习算法毕设毕业设计项目PyQT
  • 2026年蓝海:珊瑚礁AI监测开发实战——软件测试从业者的机遇指南
  • Rancher 使用手册详解
  • 车辆换道LM-FVDM模型仿真数据可视化系统(LM-FVDM)-大数据深度学习算法毕设毕业设计项目pyqt
  • 2026年软件测试:驯化AI比优化算法更重要的深层解析
  • 2.5 期末游记
  • 别急着修 Bug——从《第一个错误的版本》聊算法里的工程直觉
  • 终极清单:2026年最值钱的太空软件认证
  • 如何通过AI销冠系统提升数字员工的销售效能?
  • 团体程序设计天梯赛-练习集 L2-036 网红点打卡攻略
  • 从BUG追踪到碳汇追踪:软件测试人转型蓝碳经济的3大黄金入口
  • 离线畅用,无网也能识别,良心到爆!
  • 【强化学习】动态规划算法 - 实践
  • 工作熟练后,你的核心竞争力从不是代码本身:很多人第一反应是“捂紧源码”,但这其实是最无效的自保方式:需要输出你 懂坑、懂优化、懂业务适配,或许你要跳出现在舒适区,找到更有价值的事
  • 互联网大厂Java面试:从分布式架构到安全技术核心解析
  • Python Elasticsearch 客户端使用详解
  • 当代码遇见宇宙射线:测试工程师必知的太空防护革命
  • Nicheformer 基础模型
  • 完整教程:仓颉语言 LinkedList 链表实现深度解析
  • 同花顺 app 设置技巧
  • Kotlin编程语言入门与常见问题
  • 三角形正反面之谜:三个点如何决定朝向?
  • 【MySQL 数据库】MySQL 数据库核心概念详解:库、表、字段、主键与关系型模型一文读懂