NOIP2024模拟1

NOIP2024模拟1

果然是联动赛:

掉大分,哈哈哈。

好像有的人对比赛评价不太好,我觉得还行,除了 4 个小时 5 道题以外。

wang54321:主要是我打的比较唐。

还有经典没 SPJ ,但后交的竟然有?

  1. T1 分糖果

    签到题。

    但没签成

    考虑对 3 取余,只有四种合法 0,0,0|1,1,1|2,2,2|0,1,2

    考虑 30,1,2 可以拆成 0,0,0|1,1,1|2,2,2,所以直接枚举有几个 0,1,2 即可。

    几个经典错解的 hack

    优先 0,1,2

    7
    3 1 1 1 2 2 2

    优先 1,1,1 等:

    8
    3 3 1 1 1 2 2 2
  2. T2 乒乓球

    码农题。

    发现显然有循环节。

    发现就算特判了永远不会结束的情况,也可能会追到很高的分。

    考虑追分以后真正的分值已经没有意义,直接记录差值即可。

    预处理出经过一轮后每个状态的下一个状态和 A,B 各赢几次,在找循环节做即可。

    细节不少,大师有一种好写的做法,就是直接暴力跳,只有在有人赢时才判一下是否已经在这里赢过了来找循环节。

    看似可以卡到 k2,但考虑在同一位置的同一状态一定会有同一赢点,所以和上面做法复杂度相同。

  3. T3 与或

    结论题。

    发现对于任何情况,将 & 放在 | 前一定更优。

    可以先前面全是 |,后面全是 & 求理论最大值。

    但是要保证字典许最小,所以考虑将 | 前提。

    挨个位置考虑,如果放 | 后后续最大值依然和理论最大值相等就可以放 |

    求后续最大值可以按位贪心,也可以 ST 表维护区间 & 加预处理后缀 |(虽然 & | 之间没有结合律,但各自都满足结合律,将他们的一个符号前提即可)。

  4. T4 跳舞

    DP 题。

    考虑 dpi 表示到 i 并且 i 还活着的最大贡献。

    发现转移需要知道是否可以消除 [l+1,r1] 一段并且 l,r 还活着。

    考虑用 DP 区间 dp 预处理,设 gl,r 表示从是否可以消除 [l+1,r1] 一段并且 l,r 还活着,显然转移。

    通过预处理 gcd 可以做到 O(n2logn)+O(n3)+O(n2) 的。

  5. T5 音乐播放器

    DP+ 结论题。

    首先我们知道,当听了 i 首歌后听任意一首新歌的概率都是 1ni

    考虑其和排列类似,所以听 i 首歌的所有情况是等概率的。

    考虑 dpi,j,k 表示前 i 首歌听了 j 首,总愉悦程度为 k

    x 的答案为没听第 x 首的合法(加上其可以超过 S)方案数乘上排列产生的系数除掉总数。

    直接转移对于每个 x 都是 O(n2S) 的,总复杂度 O(n3S)

    考虑提前将所有都转移了,每次在减掉 x 贡献可做 O(n2S)

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