2017年swjtu校赛补题

9/11

ABFK sb题

C.Paint Box

[传送门](http://swjtuoj.cn/problem/2382/) 数学题 题意:m种颜色挑k种颜色去染n个序列,要求是相邻的不能同色并且k个颜色必须用到 注意到k的数据只有$1e6$ 法一:二项反演 由$f(n)=\sum_{k=0}^{n}C(n,k)g(k)$ 可得 $g(n)=\sum_{k=0}^{n}(-1)^{n-k}C(n,k)f(k)$ 上式为二项反演的公式 证明以及拓展参考[这里](http://blog.miskcoo.com/2015/12/inversion-magic-binomial-inversion) 这道题设$fi$为**恰好**用了$i$种颜色的情况, 则$k(k-1)^{n-1}=\sum_{i=0}^{k}C(k,i)f_i$ 经过反演得到 $f_k=\sum_{i=1}^{k}(-1)^{k-i}C(k,i)i(i-1)^{n-1}$ 最后对上式乘个$C(m,k)$就好了 求组合数的时候用$C(k,i)=(k-i+1)/i*C(k,i-1)$去递推就好了

ps:没加i=1的情况疯狂的wa,因为nmk分别等于1 1 1就不要考虑相邻了,要注意下标
代码

法二:容斥原理
首先,用k种颜色的方案为\(C(k,k)*(k)*(k-1)^{n-1}\)
\(k\)种颜色方案中减去用\(k-1\)种颜色方案\(C(k,k-1)*(k-1)*(k-2)^{n-1}\),得到恰好用\(k\)种颜色方案数。
多减去的\(k-2\)种颜色方案数\(C(k,k-2)*(k-2)*(k-3)^{n-1}\)要重新加上,依此类推
最后公式是\(C(m,k)*\sum_{i=0}^k((-1)^i*C(k,k-i)*(k-i)*(k-i-1)^{n-1})\)

代码同上面

D.Music Problem[WQF&ZZH&Megumin]

[传送门](http://swjtuoj.cn/problem/2383/) 当n大于3600的时候由抽屉原理可得必满足条件 n<=3600的时候直接01背包

ps:比赛的时候到后面才想这题,最后想到结论,然后匆忙上去写,是很大的失误!!!

代码(WQF)

E.Shortest Path[WQF补]

[传送门](http://swjtuoj.cn/problem/2384/) 树形dp 结论题 考虑边的贡献 如果一条边两边的子结点是偶数,那两边各自配对,不需要经过这条边是最优的,有点贪心的味道。。。。。 然后一条边两边都是奇数结点的情况没办法只能从左儿子拿一个结点,再从右儿子拿一个结点配个对,那么这个边就要贡献一次答案

。。。。。写的时候很难枚举边的时候判断两边子树节点个数。。。。。。。
那么我们可以把边权用一个标号较大的点来当点权存就行了,判断一边是不是奇数个点只要判断所有的儿子就行了。。。
儿子个数是奇数那么父亲及以上的点都是奇数。。。。。这样标号为1的点不存点权,也不会对答案有影响,然后从1开始dfs

代码

H.Magic Maze

[传送门](http://swjtuoj.cn/problem/2387/) 树形dp 题目给的是有向无环图是DAG,差点把有向看成无向,单词就差一个i。。。。 dp[u]表示以u为起点的最大值。。。。 复杂度为O(T*m)

代码(WQF)

hgcd 数学推导体,很显然hgcd的值是gcd的倍数,那么我们倒推求hgcd的过程,然后可以发现一些神奇的事情,接下来分块求解即可。

J.The Trip On Abandoned Railway[WQF补]

[传送门](http://swjtuoj.cn/problem/2389/)

题意:两种操作
1. 1 x y 从x开始每一个数一次加等差数列对应项
2. 2 x 查询x,并将他置0

法一:分块,很好写,维护两个数据,一个是块内等差数列初项和,第二个是块内有几个公差d

代码

法二:树状数组或者线段树

\(val[y] = a[y] + \sum(初项) + (\sum(y) – \sum(xi))*d\) 其中\(\sum(y) = cnt[y]*y\)
可得 ,只需要维护sumx[N], cnt[N], a[N]这三项即可

代码

posted on 2017-05-17 01:13  ACGO  阅读(197)  评论(0编辑  收藏  举报

导航