【题解】 Codeforces Round #706 题解
附(本场比赛各题 fst 率)
div2 | A | B | C | D | E | F | ||
---|---|---|---|---|---|---|---|---|
div1 | A | B | C | D | E | F | ||
div2 | 0.0010 | 0.0035 | 0.0007 | 0.3090 | 0 | 0 | ||
div1 | 0 | 0.1962 | 0.0026 | 0 | 0 | 0 |
A - Split it!
检查 或者长 的前缀和长 的后缀的反串是否相同。
注意如果 要特判。
复杂度 。
B - Max and Mex
模拟一下过程就会发现:
要么 和 永远不会变,要么就会一直加 。
所以答案只有可能是 中的一个。
注意特判 。
复杂度 。
C - Diamond Miner
把所有点翻折到正半轴。
在最优方案中连线不能交叉,因为三角形不等式。
所以直接排序贪心连接。
复杂度 。
D - Let's Go Hiking
设最长连续单调段长度为 ,个数为 。
只有 ,且这两段有交,且 为奇数的时候有解。
复杂度 。
E - Garden of the Sun
搁三列填满一次,发现这样不会有环,然后只需要把这些列连起来就行了。
复杂度 。
F - BFS Trees
考虑计算 ,如果 之间最短路有多条则答案为 。
否则可以暴力检查每一条边是否能在树中,并为每一个不在最短路上的点安排一个父亲结点即可。
复杂度 。
G - Qingshan and Daniel
找到会出完牌的一队 A,另一队伍为 B,对于 A 队,它的每一次出牌会造成右侧第一个 B 队的人出牌。
直接记录一下当前遍历到的 A 队的它们会让多少个后面的 B 队的人出牌 。
如果下一个是 A 队,则 。
如果下一个是 B 队,则让这个人出 张牌,并让 减小。
复杂度 。
H - Squares
这题窝不会,丢个官方题解:https://codeforces.com/blog/entry/88533
验题人提供一个和官方题解不同的做法。
把树建出来,发现你无论怎么走到 end,都必须经过一个点的父亲。
预处理每个点到父亲的最短路,预处理跳过一棵子树的最短路和落点。
查询可以直接树上差分出来。
复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话