【Atcoder】AGC032 B-F简要题解

B.Balanced Neighbors

构造完全图。
n n n为偶数,删去 i + j = n + 1 i+j=n+1 i+j=n+1的边;否则删去 i + j = n i+j=n i+j=n的边。


*C.Three Circuits

直接dfs强行求出答案上下界正确性是错的,我的瞎构造也没有发现某种特殊情况实际上可能会wa。

首先把存在度数为奇的点的图判掉。

讨论如下:

  • 存在点度数 ≥ 6 \geq 6 6,必然有解(可以拆成至少三个环)
  • 存在至少 3 3 3个度数为 4 4 4的点,也必然有解(考虑一个经过了三个度数为 4 4 4的点的欧拉回路一定可以从中间拆成2个)
  • 对于存在 2 2 2个度数为 4 4 4的点,下图这种情况就凉了。判断其中一个度数为 4 4 4的点是否存在不经过另一个的欧拉回路即可即可。
    在这里插入图片描述
  • 否则必然无解。

*D.Rotation Sort

操作相当于:花费 a a a的代价将某个数向右放到任意位置,花费 b b b的代价将某个数向右放到任意位置。

考虑固定一个不操作的位置序列 a 1 , a 2 , . . . , a m a_1,a_2,...,a_m a1,a2,...,am:

  • p a 1 &lt; p a 2 &lt; . . . &lt; p a m p_{a_1}&lt;p_{a_2}&lt;...&lt;p_{a_m} pa1<pa2<...<pam
  • 对于 a i &lt; x &lt; a i + 1 a_i&lt;x&lt;a_{i+1} ai<x<ai+1,它的操作是固定的——一次性把 x x x放到满足 p a j &lt; p x &lt; p a j + 1 p_{a_j}&lt;p_x&lt;p_{a_{j+1}} paj<px<paj+1的区间 ( a j , a j + 1 ) (a_j,a_{j+1}) (aj,aj+1)里面。

考虑按值从 1 − n 1-n 1nDP不操作的位置,设 d p [ i ] [ j ] dp[i][j] dp[i][j]表示处理完 i i i,上一个不操作的位置为 j j j的最小代价,设 q i q_i qi为值 i i i p p p中的下标,转移:

  • q i &gt; q j q_i&gt;q_{j} qi>qj d p [ i ] [ i ] = min ⁡ ( d p [ i ] [ i ] , d p [ i − 1 ] [ j ] ) , d p [ i ] [ j ] = min ⁡ ( d p [ i ] [ j ] , d p [ i − 1 ] [ j ] + b ) dp[i][i]=\min(dp[i][i],dp[i-1][j]),dp[i][j]=\min(dp[i][j],dp[i-1][j]+b) dp[i][i]=min(dp[i][i],dp[i1][j]),dp[i][j]=min(dp[i][j],dp[i1][j]+b)
  • q i &lt; q j q_i&lt;q_j qi<qj d p [ i ] [ j ] = min ⁡ ( d p [ i ] [ j ] , d p [ i − 1 ] [ j ] + a ) dp[i][j]=\min(dp[i][j],dp[i-1][j]+a) dp[i][j]=min(dp[i][j],dp[i1][j]+a)

*E.Modulo Pairing

结论题,证明感性。

a a a按升序排序,存在一个分界线 l ( 0 ≤ l ≤ 2 n ) l(0\leq l\leq 2n) l(0l2n),满足:

  • 对于 1 &lt; i &lt; l 1&lt;i&lt;l 1<i<l a i − 1 + a i &lt; M a_{i-1}+a_i&lt;M ai1+ai<M
  • 对于 l ≤ i &lt; 2 n l\leq i&lt;2n li<2n a i + a i + 1 ≥ M a_i+a_{i+1}\geq M ai+ai+1M
  • ( l − 1 , l ) , ( l − 2 , l + 1 ) . . . (l-1,l),(l-2,l+1)... (l1,l),(l2,l+1)...匹配,一定能得到最优答案

二分找到 l l l即可

(可以感性理解为模 M M M意义下, 0 0 0~ ⌊ M 2 ⌋ \lfloor\frac M2\rfloor 2M − 1 -1 1~ − ⌊ M 2 ⌋ -\lfloor\frac M2\rfloor 2M答案最小)
(也可以理解为 l l l左移右移答案都不会更优)


*F.One Third

概率期望题(需要求微积分的那种,一眼滚粗)

神仙模型转化

把第一刀切的位置看做 0 0 0,把所有位置分别染成三种颜色: [ 0 , 1 3 ) [0,\frac 13) [0,31)为红色, [ 1 3 , 2 3 ) [\frac 13,\frac 23) [31,32)为绿色, [ 2 3 , 1 ) [\frac 23,1) [32,1)为蓝色。

位置模 1 3 \frac 13 31,转化成新的等价模型:
长度为 1 3 \frac 13 31的线段上, 0 0 0处为红色, 1 3 \frac 13 31处为蓝色,其它点在 ( 0 , 1 3 ) (0,\frac 13) (0,31)内颜色和位置均随机。

问题转化成了,任意取 n − 1 n-1 n1个点,求最近的异色点对距离(包括两个端点)。

积分算出长度为 1 1 1的线段,随机切成 n n n段,第 k k k短的段的期望长度为 1 n 2 + 1 n ( n − 1 ) + . . . + 1 ( n − k + 1 ) \frac 1{n^2}+\frac{1}{n(n-1)}+...+\frac{1}{(n-k+1)} n21+n(n1)1+...+(nk+1)1。(推导可以看这里)
如果就是最短的一段,答案是 1 3 n 2 \frac{1}{3n^2} 3n21,否则考虑第二短的一段,答案需要 + 1 n ( n − 1 ) +\frac{1}{n(n-1)} +n(n1)1,还要乘上第一短的段两个端点颜色相同的概率 1 3 \frac{1}{3} 31

a n s = ∑ i = 1 n 1 3 i n ( n − i + 1 ) ans=\sum\limits_{i=1}^{n}\frac{1}{3^in(n-i+1)} ans=i=1n3in(ni+1)1

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值