第46届ICPC亚洲区域赛(昆明)部分题解

K King of Games

考虑到输赢的形式一定是一个 w i n win win后面跟着一堆 l o s e lose lose,不难发现这个是有一个循环节的,并且 a / b a/b a/b的输赢形式不受 n n n影响,只是从中截取了一个前缀,打表发现当 n ∗ a / b n*a/b na/b的整数部分每次加一的时候就会少一个胜场,答案就是 n ∗ a / b n*a/b na/b,否则就是 n ∗ a / b + 1 n*a/b+1 na/b+1,注意特判 a = 0 a=0 a=0的情况。

F Find the Maximum

考虑将式子变形 − x 2 + ∑ u ∈ V b u ∣ V ∣ x -x^2+\sum_{u\in V}\frac{b_u}{|V|}x x2+uVVbux,发现决定式子大小的就是其中的 ∑ u ∈ V b u ∣ V ∣ \sum_{u\in V}\frac{b_u}{|V|} uVVbu,这个的意义就是一条路径点权的平均值,我们假设它为 t t t,发现需要进行分类讨论,当 t > 0 t>0 t>0时,我们发现 t t t一定是越大越好,而有一个性质就是如果令平均点权最大,那么路径的长度至多不会超过 3 3 3,这样我们枚举中间点来处理 3 3 3的情况,随便处理下长度为 2 2 2的情况即可,当 t < 0 t<0 t<0的时候也同理,越小越好,最后 x x x的取值用二次函数最值公式即可。

D Divisions

考虑这样一段序列的贡献, 1233444 1233444 1233444,不难发现下降序列要么为空,要么只能包含一个种类的数,这样答案就是 2 1 − 1 + 2 1 − 1 + 2 2 − 1 + 2 3 − 1 + 1 2^1-1+2^1-1+2^2-1+2^3-1+1 211+211+221+231+1,这样我们对于长度为 x x x的一段相同的数所产生的贡献就是 2 x − 1 2^x-1 2x1,这样我们枚举 x x x 30 30 30 1 1 1进行拼凑即可,可以证明这样一定能凑出答案,注意特判 k = 0 , k = 1 k=0,k=1 k=0,k=1的情况。

G Glass Bead Game

很神仙的思路,注意一开始序列是无序的,这样我们考虑在进行了无穷次轮之后两个元素 i , j i,j i,j,考虑 i i i位于 j j j前面的概率就是 p i p i + p j \frac{p_i}{p_i+p_j} pi+pjpi,那么 j j j前面的数个数的期望就是 ∑ i ≠ j p i p i + p j \sum_{i\neq j}\frac{p_i}{p_i+p_j} i=jpi+pjpi,然后选择到 j j j的概率为 p j p_j pj,这样最终答案就是 ∑ i ≠ j p i p j p i + p j \sum_{i\neq j}\frac{p_ip_j}{p_i+p_j} i=jpi+pjpipj

B Blocks

状压 D P DP DP,考虑 f ( T ) f(T) f(T)表示目前已经选择的正方型的集合为 T T T,填满大矩形的期望步数,考虑到 T T T如果已经能填满那么它的期望就是 0 0 0,否则就是 1 + ∑ i f ( T ∣ i ) n 1+\frac{\sum_{i}f(T|i)}{n} 1+nif(Ti),考虑到如果 i ∈ T i\in T iT,那么 f ( T ∣ i ) f(T|i) f(Ti)就等于 f ( T ) f(T) f(T),这样我们将 f ( T ) f(T) f(T)移到一边就可以得到转移式。
f ( T ) = { 0 T can color all the field n + ∑ i ∉ T f ( T ∣ i ) n − ∣ T ∣ T can’t color all the field f(T)= \begin{cases} 0& \text{T can color all the field}\\ \frac{n+\sum_{i\notin T}f(T| i)}{n-|T|} & \text{T can't color all the field} \end{cases} f(T)={0nTn+i/Tf(Ti)T can color all the fieldT can’t color all the field
接着我们只需要考虑如何求出哪些状态能够覆盖全部矩形即可。
不难发现由于矩形的数目很少 n < 11 n<11 n<11,将坐标离散化后得到的数目大约在 20 20 20左右,这样我们暴力求解即可,复杂度为 O ( n 2 2 n ) O(n^22^n) O(n22n),可以通过本题。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值