【学习笔记】 排列组合
Sereja and Intervals
sb数据范围诈骗
Omkar and Akmar
神仙结论题。
双方不需要采取任何策略。
考虑枚举空位,限制是不能两两相邻。容斥+插板法即得:
答案是 ∑ i ≤ n 2 2 ( 2 ( n − i i ) − ( n − i − 1 i ) ) ( n − i ) ! \sum_{i\le \frac{n}{2}}2(2\binom{n-i}{i}-\binom{n-i-1}{i})(n-i)! ∑i≤2n2(2(in−i)−(in−i−1))(n−i)!
Balanced Domino Placements
我会转化!!
我会分别计算行和列的方案数,然后乘起来!!
Crypto Lights
我会转化!!
考虑能放置 i i i个球的概率。
证明:不妨假设每次放的位置是递增的。那么每种局面的概率相等。
答案是 1 + ∑ i = 0 n k ( n − i k + i i + 1 ) ( n i + 1 ) 1+\sum_{i=0}^{\frac{n}{k}}\frac{\binom{n-ik+i}{i+1}}{\binom{n}{i+1}} 1+∑i=0kn(i+1n)(i+1n−ik+i)
Array Beauty
我会转化!!
又来数据范围诈骗
An unavoidable detour for home
合法的 G = ( V , E ) G=(V,E) G=(V,E)应该满足:
1.1
1.1
1.1对于任意
v
v
v存在唯一
(
u
,
v
)
(u,v)
(u,v)满足
d
[
u
]
+
1
=
d
[
v
]
d[u]+1=d[v]
d[u]+1=d[v]
1.2
1.2
1.2对于任意
(
u
,
v
)
(u,v)
(u,v)满足
∣
d
[
u
]
−
d
[
v
]
∣
≤
1
|d[u]-d[v]|\le 1
∣d[u]−d[v]∣≤1
考虑计数。设 g i , j , k g_{i,j,k} gi,j,k表示当前层有 i i i个点,前一层有 j j j个度为 2 2 2的点, k k k个度为 3 3 3的点,当前层和上一层的树边和上一层的非树边的方案数。 f i , j f_{i,j} fi,j表示 i i i所在层有 j j j个点方案数。
那么 f i , j = ∑ k = 1 i − j f i − j , k g j , c 0 , c 1 f_{i,j}=\sum_{k=1}^{i-j}f_{i-j,k}g_{j,c_0,c_1} fi,j=∑k=1i−jfi−j,kgj,c0,c1 ,答案是 ∑ i = 1 n f n , i g 0 , c 0 , c 1 \sum_{i=1}^nf_{n,i}g_{0,c_0,c_1} ∑i=1nfn,ig0,c0,c1 。
如果 i ≠ 0 i\ne 0 i=0那么优先考虑当前层和上一层的树边。
如果 i = 0 i=0 i=0, j = 0 j=0 j=0那么 g 0 , 0 , k = ( k − 1 2 ) g 0 , 2 , k − 3 g_{0,0,k}=\binom{k-1}{2}g_{0,2,k-3} g0,0,k=(2k−1)g0,2,k−3
如果 i = 0 , k = 0 i=0,k=0 i=0,k=0那么 g 0 , j , 0 = ( j − 1 ) ! ! g_{0,j,0}=(j-1)!! g0,j,0=(j−1)!!
如果 i = 0 i=0 i=0, j ≠ 0 j\ne 0 j=0, k ≠ 0 k\ne 0 k=0那么 g 0 , j , k = ( j − 1 ) g 0 , j − 2 , k + k g 0 , j , k − 1 g_{0,j,k}=(j-1)g_{0,j-2,k}+kg_{0,j,k-1} g0,j,k=(j−1)g0,j−2,k+kg0,j,k−1
复杂度 O ( n 3 ) O(n^3) O(n3)。
tips:转移的时机与策略
Top-Notch Insertions
服了。
我会转化!!显然
问题转化为,对于一个初始为 1 ∼ n 1\sim n 1∼n的序列,每次将第 x i x_i xi个数插入到 k i k_i ki位置,求最终序列。
考虑其逆操作。注意到其逆操作插入的位置是单调的,也就是说每次会还原一段后缀,那么我们知道线段树二分出来的这个点是 x i x_i xi,并且将这个点删掉。这样我们就求到了每个 x i x_i xi在最终序列的位置。
设 t o t tot tot表示要求 a i < a i + 1 a_i<a_{i+1} ai<ai+1的数目。答案是 ( 2 n − t o t − 1 n ) \binom{2n-tot-1}{n} (n2n−tot−1)
Paperfolding
我们把若干次翻折后的图形展开,那么得到 2 i × 2 j 2^i\times 2^j 2i×2j个小矩形,那么把每个小矩形从中间横着切一刀,竖着切一刀,就会得到 ( 2 i + 1 ) ( 2 j + 1 ) (2^i+1)(2^j+1) (2i+1)(2j+1)个块(中间的折痕是相连的)
答案是 ∑ i = 0 n ( n i ) ( 2 i + 1 ) ( 2 n − i + 1 ) 2 n = 2 n + 4 n + 2 × 3 n 2 n \frac{\sum_{i=0}^n\binom{n}{i}(2^i+1)(2^{n-i}+1)}{2^n}=\frac{2^n+4^n+2\times 3^n}{2^n} 2n∑i=0n(in)(2i+1)(2n−i+1)=2n2n+4n+2×3n
Separated Number
我会转化!!
设 s ( i , k ) s(i,k) s(i,k)表示 i i i个数选不超过 k k k个的方案数
那么
s
(
i
,
k
)
=
2
s
(
i
−
1
,
k
)
−
(
i
−
1
k
)
s(i,k)=2s(i-1,k)-\binom{i-1}{k}
s(i,k)=2s(i−1,k)−(ki−1) 组合意义nb
答案是 ∑ i = 1 n 1 0 i − 1 ( f ( n − i ) s ( n − 1 − i , k − 2 ) + a [ n − i + 1 ] s ( n − i , k − 1 ) ) \sum_{i=1}^{n}10^{i-1}(f(n-i)s(n-1-i,k-2)+a[n-i+1]s(n-i,k-1)) ∑i=1n10i−1(f(n−i)s(n−1−i,k−2)+a[n−i+1]s(n−i,k−1))
复杂度 O ( ∑ n ) O(\sum n) O(∑n)
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530101.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2021-08-28 【题解】「JOISC 2021 Day1」饮食区