[ARC111-C] Too Heavy
首先判断无解:
∃
i
∈
[
1
,
N
]
,
p
i
≠
i
且
b
p
i
≥
a
i
⇔
无解
\exists i \in [1, N], p_i \ne i \text{且} b_{p_i} \ge a_i \Leftrightarrow \text{无解}
∃i∈[1,N],pi=i且bpi≥ai⇔无解
接下来用 p i p_i pi 建个图 ∀ i ∈ [ 1 , N ] , i → p i \forall i \in [1, N], i \rightarrow p_i ∀i∈[1,N],i→pi 。
对于某个联通块
C
C
C ,一定是一个环,以任何一个
a
a
a 最大的节点作为起始节点,得到一个便利序列
l
(
∣
l
∣
=
∣
V
C
∣
)
l~(|l| = |V_C|)
l (∣l∣=∣VC∣),可以构造方案:
l
1
↔
l
2
l
1
↔
l
3
⋯
l
1
↔
l
n
\begin{aligned} &l_1 \leftrightarrow l_2\\ &l_1 \leftrightarrow l_3\\ &\cdots\\ &l_1 \leftrightarrow l_n \end{aligned}
l1↔l2l1↔l3⋯l1↔ln
然后所有联通块的方案拼起来就行了。
[ARC114-C] Sequence Scores
考虑对于一个确定的序列 A A A 怎么求出 f ( A ) f(A) f(A) 值。
对于值 x x x ,设其在序列 A A A 的出现位置序列为 l A ( x ) l_A(x) lA(x) ,位置从小到大排,特别的 l A ( x ) 0 = 0 l_A(x)_0=0 lA(x)0=0。其对 f ( A ) f(A) f(A) 的贡献显然可以这样求:
考虑向一个序列 A A A 的末尾添入一个值,变为 A ′ A' A′,假设当前需要添入 x x x ,分情况讨论:
- 序列 A A A 没有 x x x ,那么 f ( A ′ ) : = f ( A ) + 1 f(A') := f(A) + 1 f(A′):=f(A)+1
- 序列 A A A 中最后一个 x x x 个位置为 p p p 则 f ( A ′ ) : = f ( A ) + [ min i = p + 1 ∣ A ∣ { A i } < x ] f(A') := f(A) + \left[\min_{i = p + 1} ^ {|A|}\{A_i\} < x\right] f(A′):=f(A)+[mini=p+1∣A∣{Ai}<x]
设 f ( n ) f(n) f(n) 表示所有长度为 n n n 的序列的得分和, g ( n , x ) g(n, x) g(n,x) 表示长度为 n n n ,最后一个值为 x x x 之后的位置的值都大于 x x x 的序列个数。
那么可以得到:
g ( n , x ) = ∑ i = 1 n m i − 1 ( m − x ) n − i f ( n ) = ∑ i = 1 m f ( n − 1 ) + m n − 1 − g ( n − 1 , i ) \begin{aligned} &g(n,x)=\sum_{i=1}^n m^{i-1} (m-x)^{n-i}\\ &f(n)=\sum_{i=1}^m f(n-1)+m^{n-1} - g(n-1,i) \end{aligned} g(n,x)=i=1∑nmi−1(m−x)n−if(n)=i=1∑mf(n−1)+mn−1−g(n−1,i)
[ARC115-D] Odd Degree
考虑一个连通图 C C C 的答案。
如果 K K K 是奇数,那么 A N S \rm{ANS} ANS 必然为 0 0 0 ,只用考虑 2 ∣ K 2 \mid K 2∣K 的情况。
首先想一棵树的情况:考虑确定所有节点的度数奇偶性,从叶子结点开始向上确定每一条边是否选择,可以发现选择方案是确定的,因此对于一棵树而言:
A
N
S
K
=
(
∣
V
C
∣
K
)
\mathrm{ANS}_K=\binom{|V_C|}{K}
ANSK=(K∣VC∣)
接下来考虑一般情况,首先随便弄一棵生成树,然后对于非树边,随便选择一些,然后再确定节点的度数奇偶性,发现对于树边,其选择方案一定是确定的,因此有:
A N S K = ( ∣ V C ∣ K ) 2 ∣ E C ∣ − ∣ V C ∣ + 1 \mathrm{ANS}_K=\binom{|V_C|}{K} 2^{|E_C|-|V_C|+1} ANSK=(K∣VC∣)2∣EC∣−∣VC∣+1
对于所有联通块,用背包对答案进行合并,合并方法可以用类似树形背包的方法,可以做到 O ( n 2 ) O(n^2) O(n2) 。