Codeforces Round 937 (Div. 4)

A. Stair, Peak, or Neither?

题面即做法。

B. Upscaling

把一个 2x2 的方格看成一个大方格。

坐标对应:(x,y)(x+12,y+12)

由于两个符号交错出现,所以考虑 变换后 横纵坐标和 的奇偶性性质。

和为奇 .,和为偶 #

用到这个 trick 的题:CF1915F

C. Clock Conversion

读入使用:scanf("%d:%d" , &a , &b);

后面就是纯 if 判断输出。

D. Product of Binary Decimals

预处理出来所有 105 的只包含 0 和 1 的数。

对于每一个询问的 a 枚举每一个预处理的数暴力做除法就行了,如果最后剩下来的是 1 那就输出 YES ,否则输出 NO

E. Nearly Shortest Repeating Substring

n 的因子个数是 logn 级别的。

所以暴力枚举长度 n 的因子然后暴力扫一遍就可以达到 O(nn)

预处理因子再暴力扫一遍复杂度为 O(nlogn)

F. 0, 1, 2, Tree!

性质 1:有解的充要条件为 c=a+1

证明:每多一个拥有 a 节点,就会多一条支路,这条支路最后会导向一个叶子节点。

而为什么跟 b 节点没关系呢,因为 b 节点可以通过在叶子节点的头上挂任意长度的链构造出来。

性质 2:深度最小的构造法是模拟完全二叉树。先挂 a 节点再挂 b 节点再挂 c 节点。

G. Shuffling Songs

无脑状压 dp 。

ABC343G的弱化版

做法是设 fs,i 代表集合为 s 以串 i 为结尾的序列是否存在。

转移方程:从小到大枚举集合 s ,枚举当前结尾 i ,再枚举上一个结尾 j ,写出:

fs,i|=fs(1<<i1),j

统计答案即枚举集合和结尾并对 f 为 1 的集合的 popcount 取 max 。

posted @   NEUQ-zyb  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示