2022.08.03 NOI模拟赛总结

1.时间安排

7:30~8:00

T1:树上DP,树上染色且相邻节点不同色,给定若干关键点求所有方案关键点颜色种类k次幂之和,有暴力10分,关键点是所有点有18分也许能推式子,感觉DP推不出来。

T2:给定根为1的树,给定若干条额外的非树边满足边两点树上路径一定经过1点,求恰好割掉两条树边的最小割,只会暴力最小割。

T3:回文串计数,给定序列求所有不同排列中回文子串个数的最大值和等于最大值的排列个数,有12分暴力,还有23分所有种类字符不超过两个。

8:00~10:00

先打了T1暴力,用暴力打表方便推关键点是全集的规律。

看不出有什么规律,按套路思考容斥。

考虑用i种颜色染色,且每种颜色至少用1次的方案数。

总方案数是 \(i*(i-1)^{n-1}\),之后枚举有多少颜色没有用,用二项式定理容斥。

答案为 \(\sum_{i=0}^{m}C_{m}^{i}i^k\sum_{j=0}^i(-1)^{i-j}C_i^jj(j-1)^{n-1}\)

显然卷积,nnt即可(模数恰好还是998244353)。

10:00~11:00

打了T3暴力,思考都小于等于2怎么做,发现可以分为若干堆,每堆独立计算。

打了个组合数的DP,发现答案小很多。

思考2可以多一种穿插的形态,之前没考虑到。

思考了很久怎么处理,没DP出来。

11:00~12:30

打T2的暴力最小割,连源汇的时候需要讨论一下枚举的两条边重合的情况,调了一会最后答案是对的。

想不到怎么优化。

result:

T1:28 T2:0(输出格式错了,空格打成了换行……,有10分)T3:12

2.总结

T1:

%J神场切(因为细节错误挂分了)

忘记了一个套路:\(x^k=\sum_{i=0}^kS(k, i)C_x^ii!\)

之后就是在树上根据容斥DP,限制i个颜色关键点不能选,分0/1套路当前点是否填了i个被限制颜色之一DP即可。

T2:

只会50分的。

考虑选了两条树边后,树被切成了3个块A,B,C(令A,B必须与C切开),因为非树边的性质,可以直接统计每棵子树向外连的边。

如果A,C成父子关系,则是父亲子树内-孩子子树内的向外的边。

否则则,是两者相加减去2倍两棵子树间的边数量,这个东西可以用dfn序上的二维前缀和做。

复杂度 \(O(n^2)\)

(待upd)

T3:

23分的分讨是真离谱。

(待upd)

posted @ 2022-08-03 20:28  Displace  阅读(33)  评论(0)    收藏  举报