概述
[ARC111-C] Too Heavy
⇒ Rightarrow ⇒原题链接
首先判断无解:
∃
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
⇒ Rightarrow ⇒原题链接
考虑对于一个确定的序列 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} < xright] 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
⇒ Rightarrow ⇒原题链接
考虑一个连通图 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) 。
最后
以上就是闪闪康乃馨为你收集整理的刷(shui)题记录 2021.10 [2][ARC111-C] Too Heavy[ARC114-C] Sequence Scores[ARC115-D] Odd Degree的全部内容,希望文章能够帮你解决刷(shui)题记录 2021.10 [2][ARC111-C] Too Heavy[ARC114-C] Sequence Scores[ARC115-D] Odd Degree所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复