2025 1.9 做题记录

CF1787D

这里有个很典的 trick。我们将 i+aii 连边,那么只要一个 <0>n 的点能够走到 i,就说明 i 能在有限的次数内出去。这玩意跑个拓扑排序即可。那么现在我们可以考虑从 1 开始走,因为只能修改一个点的值,记 u1 走若干步后到达的点。那么 u 可以修改成的值有:x[u+x0u+x>n(fu+xcu,u+x)]。其中 fx 表示 x 是否可以在有限的次数内走出去。ci,j 表示 j 是否不依赖 i。也就是说 j 不会走到 i(不会形成环)。那么再跑个拓扑就行了。同时,如果 1 能够在最开始走出去,那么 1 在这个过程中没有经过过的点是无论怎么改都不影响 1 的,这些点的贡献都是 2n+1。时间复杂度 O(n)

CF1787E

乱猜。考虑将这 n 个数尽量分成多的段,使得每段的异或和均为 x。那么我们将每两个异或和为 x 的数分成一组。如果剩下的数异或出来不为 0,那么无解。我也不知道为啥。然后就做完了,再将多的合并。时间复杂度 O(n)

posted @   harmis_yz  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示