ARC128 比赛记录(题解速览

总之就是非常拉

A

发现有 \(\frac{a}{b}\times\frac{b}{c}=\frac{a}{c}\),所以贡献可以拆开,拆成两两相邻的乘积。
然后直接贪心如果 \(\ge 1\) 就乘上即可。

B

设三种颜色分别为 \(0,1,2\),则每次变化总和 \(\bmod 3\) 是不变的。
所以如果要把所有球变成 \(k\),剩下两种球颜色和必须 \(\bmod 3\) 相同。
然后直接枚举两两就行了。

C

赛时思路:差分,然后变成以下两个限制

  • \(\sum_{i=1}^nc_i\le M\)
  • \(\sum_{i=1}^nc_i(n-i+1)=S\)

要求最大化 \(\sum_{i=1}^nc_i(\sum_{j=i}^na_j)=\sum_{i=1}^nc_ihz_i\) 其中 \(hz_i\) 表示后缀和。
按照 \(\frac{hz_i}{n-i+1}\) 排序,显然越大越优。
首先贪心地填最大的,然后考虑这样可能会不满足 \(\sum_{i=1}^nc_i\le M\)
首先,我们考虑如果我们选了前面的两个,发现如果调成一个肯定比原来优。
所以最多只会选两个位置有数。
直接 \(O(n^2)\) 枚举就做完了。
但是上面的贪心正确性还没证明,如果是错的勿喷。

D

考虑怎样会不合法。
首先如果两个相同元素相邻,那肯定删不掉,可以凭这个把序列划分成若干段。
发现合法性仅和所有删除元素左右第一个未被删除元素决定。
所以每段之间有“高墙”,段和段之间贡献肯定独立。
经过假了无数次后的猜结论,发现删掉的序列只有形如 a(bab...ba)ba(bab...bab)a 才会不合法。
感性证明就考虑如果存在第三个元素,那至少有一个元素不等于左右第一个元素,可以先按它左右一个一个删掉。
严格证明可以考虑归纳法。
然后就做完了, 考虑 dp 表示当前这个元素作为最后一个被保留的元素的方案数(不考虑它右边
然后随便 \(O(n)\) 转移一下就做完了。

E F 咕咕咕

原文地址:https://www.cnblogs.com/pealfrog/p/15415722.html