暑假集训CSP提高模拟4 & 暑假集训CSP提高模拟5

暑假集训CSP提高模拟4 & 暑假集训CSP提高模拟5

模拟赛 4

超越一切,策略喜人。

带来终结,结论脱尘。

构造之力,充满全身。

最后一击,码力成神。

  1. T1 White and Black

    显然策略,考虑最浅的节点不符合一定会点,如果子节点是白也一定会点回去,只有是黑的时候不动。

    是黑的贡献可以先减去,再在算到它时加上。

    发现这样和深度也无关了,只需要统计有几个黑色的子节点即可。

  2. T2 White and White

    逆天题。

    考虑直接暴力有 n2knkp 两种。

    先考虑 nkp,就是枚举最后一段的余数,套个树状数组可以优化到 nklogp,原题可过。赛时因 wang54321 优秀大常数做法让学长一怒之下 1500ms500ms 将所有树状数组卡了。

    n2k 的暴力更显然,设 dpi,j 表示前 i 个分了 j 块,si 表示前缀和。考虑优化。

    发现关键性质 dpi,jsi(modp),所以所有的转移决策对应方程都是同于的,所以 dpk1,j1>dpk2,j1k2 一定不劣于 k1

    可以直接 O(nk) 作了。

  3. Black and Black

    简单构造(wkh2008:这叫简单构造)。

    考虑先从 1 填到 n

    sum>0,若有解,一定有前缀和是正或后缀和是负的点。

    因为值只有 1,1 所以一定有前缀和为 1 或后缀和为 1 的点。

    找到以后直接前后缀加减即可。

    sum<0 类似即可。

  4. Black and White

    动态点分治板子,码量巨大。

    我太菜了,有点码量就写不出来……

    其实可以直接用线段树维护,考虑两个点集交的直径的端点一定是这两个点集所包含的 4 个直径端点中的两个。

    于是可以合并了。

模拟赛 5

听好了:

听好了听好了,听好了听听好了。每个听好了都听好了听好了,为听好了带来听好了的听好了。

听好了所听好了的听好了都听好了,听好了所听好了的听好了都听好了听好了的听好了。

听好了(听好了听好了)

听听听听听听听听听听听听听听听听好好好好好好好好了了

听好,好好听好。

好听,听听了好。

  1. T1 简单的序列(sequence)

    从大到小贪心即可。

  2. T2 简单的字符串(string)

    什么做法都可以过。

    可以简单 n2|s|bitset 就可过了。

    也可以显然做到 O(n|s|)

  3. T3 简单的博弈(tree)

    首先需要知道 sg

    其次就是板子。

    考虑从儿子转移,因为也需要将直接儿子断掉,所以 sg+1,然后异或起来就行了

  4. T4 困难的图论(graph)

    是真困难。

    显然考虑到建虚点,从节点到虚点为 0,虚点到节点为 1,考虑直接从虚点开始跑最短路。

    但这样会有问题:当 ab 最短不经过 a 的虚点是,距离会多算一。

    对每个虚点建出最短路 DAG,考虑当 ab 祖先时 ab 贡献会加一。

    期望是 O(n2) 的。

    考虑 bitset 加速,发现无法开不定长的,要是开定长的就是 O(n2kw) 不如不干。

    但我们可以手写,用 unsigned long long 压起来跑多遍就行了。

posted @   5k_sync_closer  阅读(24)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示