24.7 杂题

时隔一年啊,不会复建、、、

[HNOI2012] 与非*#

这个 NAND 实际上可以做出任何位运算操作。而所有的位运算有一个性质,就是说如果两个位一样,那么操作完还是一样的。如果全部 a 中这些位置都相同,那么最后理应也相同。也就是假设对于所有 na,这两个位置都是相同的,那么就应该一直是相同。找到等价类的数量,求 2 的次幂即可。

后面的部分就是数位 dp 了,具体来说我们枚举每个位置是什么值,然后判断一下这个地方是不是已经被确定了 0/1。这就是一些 trival 的东西。

[ARC172E] Last 9 Digits*#

注意到 x10k 互质,这里 n 也应该和 10k 互质,所以就有可能可以使用欧拉定理。虽然目前看起来没什么用,但是我们稍微枚举一下,发现 109108 应该没什么两样。于是看看换成 1000 有什么区别。一番操作下来,发现又是直接按位枚举就好,因为大的满足,小的也必须要满足,然后就做完了。

[BJOI2020] 封印#

套娃题,考虑建处 SAM 然后求出每个 i 的最长后缀匹配上了 t 的一个字串。然后问题变成了求 maxi=lrmin(il+1,ai),考虑拆 min,若 il+1aiiai+1l,那么找到一个最大的 i 即可。考虑在线怎么求,二分答案然后求区间最值即可。剩下的部分直接求 rmq 即可。

「MCOI-08」Fast Enumeration*#

w33z 的奇怪题。

CF1637E Best Pair#

注意到不同的 cnt 只有根号种,所以对于每两种暴力遍历最大的若干组,排除特殊的 m 组即可。

CF1628D2 Game on Sum (Hard Version)#

不妨把范围缩小到 [0,1] 最后再乘以 k,考虑 dp,记 fi,j 代表局面为 (n,m) 时的答案,假设这一步 A 选的数是 x,则 fi,j=min(fi1,j1+x,fi1,jx),因为 B 要最小化。那 A 的选择其实就是刚好要他们两个相等也就是 x=fi1,jfi1,j12。这个数显然是一个 [0,1] 之内的数,而真正的转移就是 fi,j=fi1,j1+fi1,j2,看起来就很格路计数,考虑边界情况 fi,i=i,计算每个边界对答案的贡献即可。

CF1710B#

只有所有开始降水的地方可能不满足条件,随便推一推每个位置的情况,满足几个不等式的就是答案。

CF1654D Potion Brewing Class#

固定根之后可以推出每个点和根的关系,分解质因数然后每次更新是 O(logV) 的。最后的答案即为分母的最小公倍数。

posted @   Semsue  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
Title
点击右上角即可分享
微信分享提示
主题色彩