P8579

我认为这题挺难的,应该不止蓝题难度,我做它的时候没有一步是严谨的甚至到最后 A 的时候都是不具有正确性的
首先我们要看出它是个二分,然后我们要感性理解一下它的最劣情况,用于 \(check\)
感性理解,我们让一个联通块里的其中一个点(我们叫它源点)的权值为 \(inf\),其他的这个连通块里的点为 \(0\)(实际上是无限接近 \(0\) 的正实数),因为有源点外的点有点权的话就可以帮助源点分摊,就无法达到我们想要的最劣情况了。
在每一个联通块里枚举每一个点并二分 \(x\),每次二分跑一遍 \(bfs\) 模拟分摊过程,取所有二分出来的答案的最大值即为最终答案。
然而这样会 \(TLE\)
但是我直接用其中一个度数最大的点作源点冲过去了
我们需要在把每一个点作为源点时先用 \(bfs\Theta(n + m)\) 预处理出每一层要扩展的点,这样在二分的时候就不需要每次跑一遍了,总时间复杂度 \(\Theta(n(n+m)+n^2log_\text{值域})\)


P2592

瞎搞一顿 A 了,一看题解发现自己的做法好像非常 Naive。
我的想法是枚举当前人数和男生人数,最大/小前缀和,当前选的是男/女生,复杂度没有问题但常数巨大。
但其实好像只要考虑后缀就好了。


P7334

线段树卡常题。
其实不是卡常,只是我只用一个 \(flag\) 维护操作次数的话 \(flag\) 会被 \(pushdown\) 下去,之后遍历到这个节点时就没法使用我们的 区间开平方时,如果当前区间有被平方过,就直接把平方次数-1 优化了(这个错误其实挺蠢的)。
加深对线段树的理解,是道好题。


P2195

感觉不像是紫的,毕竟跟这个一模一样。
总之就是虽然不会严谨证明,但感觉这样就是对的。
但这题带给我的最大收获还是——
\(CO2\) 二氧化碳大法好!
首先把万能头撅掉会使得本地 \(Vscode\) 跑得飞快,只需要 0.114s 即可编译 + 运行一条龙!
并成功用 C 拿到了这题的最优解。
虽然这很不要脸。

原文地址:http://www.cnblogs.com/cotsheep/p/16916549.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性