纪中 2020.07.20【NOIP提高组】模拟 总结反思
这次比赛整体稍微比前几次简单,但考得一般般。被T4坑了。。。
T1 矩阵的个数
比赛时
由于之前做过很多类似这种统计方案数的题目,再只有3列,很容易想到用DP来做。我在比赛时设 f i , a , b , c f_{i,a,b,c} fi,a,b,c表示当前第 i i i行,第一列、第二列、第三列已经填的数的和分别为 a a a、 b b b、 c c c,再枚举 x x x、 y y y表示当前这一行第一列、第二列分别放的数,那么这一行第三列的数可以直接算出来。由于需要6重循环来完成转移,我在比赛时觉得有很大的可能会TLE,但是发现 ∑ i = 1 n a i = c 1 + c 2 + c 3 \sum_{i=1}^{n}a_i=c1+c2+c3 ∑i=1nai=c1+c2+c3,所以 a i a_i ai应该不会很大,就没有继续优化。
预估:50TLE
之后
实际:60TLE
还挺幸运拿了60分
其实可以减去一维, f i , a , b f_{i,a,b} fi,a,b即可,第一列第二列已经确定了,那么第三列也就确定了,然后类似地转移即可
T2 昂贵的珍珠垂饰
比赛时
这题很显然是一道数学题,然而我数学不好。
我随便推了一个公式样例对了, a n s = k n + 1 − k k − 1 − k ∗ n ans=\frac{k^{n+1}-k}{k-1}-k*n ans=k−1kn+1−k−k∗n。
预估:100
之后
实际:0WA
我脑残地想错了
每串珍珠垂饰都要必须由K种珍珠连成
然而我推的公式只排除了一串全是一种珠子的情况。。。。这都能想错
实际使用容斥原理(差不多是我第一次使用。。。?):
a
n
s
=
∑
i
=
1
n
(
k
n
−
C
k
1
∗
(
k
−
1
)
n
+
C
k
2
∗
(
k
−
2
)
n
−
.
.
.
.
.
.
)
ans=\sum_{i=1}^{n}(k^n-C_{k}^{1}*(k-1)^n+C_{k}^{2}*(k-2)^n-......)
ans=i=1∑n(kn−Ck1∗(k−1)n+Ck2∗(k−2)n−......)
其实就是
a n s = ∑ i = 1 n ∑ j = 0 k − 1 ( − 1 ) j ∗ C k j ∗ ( k − j ) n ans=\sum_{i=1}^{n}\sum_{j=0}^{k-1}(-1)^{j}*C_{k}^{j}*(k-j)^n ans=i=1∑nj=0∑k−1(−1)j∗Ckj∗(k−j)n
解释一下, C k j ∗ ( k − j ) n C_{k}^{j}*(k-j)^n Ckj∗(k−j)n 表示从 k k k种颜色中排除 j j j种颜色,用剩下的 ( k − j ) (k-j) (k−j)种颜色组成的方案数。由于存在容斥关系,所以需要通过容斥原理计算。
再一通骚操作把这个式子展开
a
n
s
=
[
k
1
+
k
2
+
.
.
.
+
k
n
]
+
∑
i
=
1
k
(
−
1
)
i
∗
C
k
i
∗
[
(
k
−
i
)
1
+
(
k
−
i
)
2
+
.
.
.
+
(
k
−
i
)
n
]
ans=[k^1+k^2+...+k^n]+\\ \sum_{i=1}^{k}(-1)^i*C_{k}^i*[(k-i)^1+(k-i)^2+...+(k-i)^n]
ans=[k1+k2+...+kn]+i=1∑k(−1)i∗Cki∗[(k−i)1+(k−i)2+...+(k−i)n]
注意
[
]
[]
[]起来的式子,其实是等比数列,运用等比数列求和公式运算即可.
T3 戒指
比赛时
这题没怎么仔细思考,我想到 f i , j f_{i,j} fi,j表示当前填第 i i i个字母,之前10个字母的状压为 j j j的最大值,填的时候判断一下这一位和前几位结合产生的价值即可。但是状压不下,10个小写字母有 2 6 10 26^{10} 2610这么多种可能。。。
认为这题应该是需要什么高级的字符串算法来做,然而完全不会。果断放弃!
之后
这题实际也是用DP解决,设 f i , j f_{i,j} fi,j表示当前进行到第 i i i位,最后填的是第 j j j个单词的最大愉悦值。
T4 五子棋
比赛时
这题关键在于怎样找到方案使1号选手的积分最大,由于别的人先进行比赛会产生经验使1号选手处于劣势,我们就先安排1号选手和其他选手比赛,顺序用状压DP解决即可,其实转移与设都特别容易想到。这么水的题放到第四?!
预估:100
之后
AC