Codeforces Round 951 (D2) 分析和证明 更新到E
萌新的第二篇cf证明
A - Guess the Maximum
//这个问题比较套路让我们看看Alice是怎么想的
Alice:“如果Bob选了[i,j],我只要保证[i,i+1]能赢就行。多出的数只会让max更大。”
所以枚举[i,i+1]即可。
//使用了调整法
B. XOR Sequences
每lowbit个数分成一段。原来相邻的段因为异或了lowbit,会交换位置。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-> xor 12
12 13 14 15 8 9 10 11 4 5 6 7 0 1 2 3
比如12 - 15这段,8 - 11这段就被交换了位置
那么只能选每一段
C. Earning on Bets
//这怎么是数学题
设投注 x0, x1, ...
那么我们需要
for each i , xi * ki > sum of x
所以 xi > sum / ki
累加得 sum > sum * Σ(1 / ki)
即 Σ(1 / ki) <= 1
这是合法的必要条件
此时我们取xi = 1 / ki即可
注意我们将xi乘上lcm(1,2,...,20),使xi是整数
D. Fixing a Binary String
大水题。
不妨设a[0] = 0(对于1的情况,取反处理即可)
第i个数应当是 i / k % 2
分别判断
s[p+1]s[p+2]..s[n] s[p]s[p−1]..s[1]这两部分是否合法即可
前面一部分合法,当:
数量<=k时,当全是0合法
否则,当前2k个数是00000...00011111.....111 且s[p+1+2k]...s[n]合法时合法
后面一部分合法,当:
s[p] = (n-1 - p) / k % 2 且 s[p−1]..s[1]合法
模拟即可
//upd 也可以哈希
E - Manhattan Triangle
什么样的三个点能组成Manhattan Triangle?
尝试如下情况
.
.
.
我们来画一些线
.
.
. . .
.
. . . . . .
那么由于上面的点到右下的距离,左边的点到右下的距离相等,所以红线和蓝线长度相等。
正式的说,
如果三点两两不共线(共线指x坐标或y坐标相同),那么
找到x坐标处于中间的(例子中是红点),
找到y坐标处于中间的(例子中是蓝点),
这两个点一定不同(否则处于边缘的两点距离一定大于中间这个点
.
.
. . .
.
. . . . . . .
就像这样)
那么这两个点组成的线是45°或135°的。(可以枚举所有情况证明)
如果有两点共线,那么会组成一个等腰直角三角形
也有一条边是45°或135°的。
以此模拟即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具