把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

20220918 ICPC 网络赛

过了 8 个题,比上一场稍微好点了,但是被过了一片的 I 卡住了,有点可惜。

C Deltete the Tree

首先可以发现几个简单的性质:操作过程中点的度数不会增加,shrink 操作不改变其他点的度数,每次 delete 操作后其他某个点的度数至多减少 1。

那么度数 \(\le 1\) 的点只能通过 delete 操作删掉,而其他点在操作过程中总会存在某个度数为 2 的时刻,用 shrink 操作将其去掉即可,于是答案为度数 \(\le 1\) 的点的数目。

D Find the Number

先枚举 ctz 为 \(k\) ,那么末尾一定是一个 1 和 \(k\) 个 0 ,只需要考虑前面怎么填。于是问题转化为构造出一个 popcount 为 \(k-1\) 的数,且要落在区间 \([l,r]\) 中。

从高位往低位依次考虑,如果首位填 0 时能填出的最大值 \(a \ge l\) ,首位填 1 时能填出的最小值 \(b \le r\) ,由于一定有 \(a<b\) ,故 \(a,b\) 都在区间 \([l,r]\) 中,可以直接构造出解;否则 \(a\ge l,b\le r\) 至少有一者不成立,首位也至多有一种填法,填了之后再考虑后面的位即可。

F Bacteria

\(f(x)\) 表示最后一个数是 \(x\) 的时候的合法数列数目,那么答案就是 \(f\) 的前缀和 \(\sum_{x\le n} f(x)\)

考虑 \(x\) 的质因数分解形式 \(x=\prod p_i^{t_i}\) ,那么就有 \(f(x)=\prod \binom{k+t_i-1}{t_i}\) 。不难发现 \(f\) 是个积性函数,并且质数次幂处的函数值 \(f(p^c)=\binom{k+c-1}{c}\) ,用 min_25 筛进行计算即可。比赛的时候发现没带 min_25 的板子,于是和 wwj 两个人又手搓了一遍 min_25。

H Step Debugging

用栈模拟这个循环结构即可。

K Pyramad

考虑一种极端情况,打败每个敌人都需要 5000 的攻击力,那么也只需要让 \(w\) 增大到 \(\sqrt x\),再让攻击力增加 \(\sqrt x\) 次,后面的战斗就都能获胜了。那么 \(w\) 的值不会超过 \(\sqrt x\) ,没有打败的敌人的个数不会超过 \(2\sqrt x\)

\(dp(i,j,k)\) 表示考虑了前 \(i\) 个敌人,\(w\) 现在的值是 \(j\) ,前面 \(i\) 个敌人中有 \(k\) 个人没有打败,此时攻击力的最大值。转移是 \(O(1)\) 的,讨论对下一个敌人用哪种操作即可。后面两维都是 \(O(\sqrt x)\) 的,于是时间复杂度为 \(O(nx)\) ,可以通过。

posted @ 2022-09-20 11:08  jklover  阅读(103)  评论(0编辑  收藏  举报