05 2019 档案
摘要:"传送门" 好妙的一道题,题目要求的其实是这个式子 $$ \sum_{i=1}^{n}\sum_{j=i+1}^{n}\binom{a_i+b_i+a_j+b_j}{a_i+a_j} $$ 但是直接计算显然是$O(n^2)$的,看起来也没法优化 由于$n$比较大,而坐标范围比较小,我们发现,~~我才
阅读全文
摘要:"传送门" 这个题考虑组合数的实际意义,可以将题意转化为从$nk$个数里面选$m$个数$(m\%k=r)$的方案数 这个可以$dp$求解 设$f[i][j]$表示前$i$个数选出$j$个数($j$是对于$k$取mod后的)的方案数 显然有$f[i][j]=f[i 1][j]+f[i 1][(j 1+
阅读全文
摘要:"传送门" 直接对于每种颜色都建一棵LCT就行了,至于判断能否修改,有一个特殊情况就是修改前和修改后的颜色可能相同 还有就是修改点权记得update 代码:
阅读全文
摘要:"传送门" LCT模板题 讲一下几个细节: 1、cut的时候如果只是将$x$定为根,然后将它的右儿子以及$y$的父亲清空是错的,因为$x$此时的右儿子不一定是$y$ 所以记得需要提取路径,然后再将深度小的那个节点的左儿子和深度大的节点的父亲清空 2、对于标记的问题,建议将点权表示为$p v_i+q$
阅读全文
摘要:"luogu" 普通版题解:https://www.cnblogs.com/lcxer/p/10876856.html 在普通版里,我们考虑对于$n$对情侣,恰好$k$对是和谐的方案数是 $$ ans[n][k]=\binom{n}{k}A^k_n2^kg(n k) $$ 然而这样做是$O(n^2)
阅读全文
摘要:"luogu" 考虑对于$n$对情侣,恰好$k$对是和谐的方案数是 $$ ans[n][k]=\binom{n}{k}A^k_n2^kg(n k) $$ $g(n)$为全部$n$对情侣不和谐的方案数 容易知道去掉所有合法的就是不合法的 $$ g(n)=(2n)! \sum_{i=1}^{n}ans[
阅读全文
摘要:"luogu" ~~显然这是个背包题~~ 显然物品的数量是不用管的 所以考虑大小为$v$的物品可以装的体积用生成函数表示一下 $$ f(x)=\sum_{i=0}^{+\infty}x^{vi}=\frac{1}{1 x^v}\\ ans=\prod_{i=1}^{n}\frac{1}{1 x^{v
阅读全文
摘要:bzoj luogu 生成函数做起来挺简单的 首先,答案显然是 \[ ans=[x^n]\sum_{i=1}^{+\infty}Fib^i(x)=[x^n]\frac{Fib(x)}{1-Fib(x)} \] 然后有 \[ Fib(x)=\frac{x}{1-x-x^2} \] 证明如下(知道自行往
阅读全文
摘要:"bzoj传送门" "luogu" 生成函数,多项式 首先考虑这个题最显然的$dp$方程,设$f(n)$为根节点权值为$n$的二叉树个数,$g(n)$为权值为$n$的点是否存在 当$n=0$,$f(n)=1$ 当$n\neq 0$ $$ f(n)=\sum_{i=1}^{n}g(n)\sum_{j=
阅读全文
摘要:"传送门" 生成函数 设生成函数$f(x)$,可以将系数定为选的方案数,指数定为代价 那么 $$ f(x)=\sum_{i=1}^{n}x^{w_i} $$ 然后答案就是$f^3(x)+f^2(x)+f(x)$然后去掉重复的情况 然后我们设 $$ A(x)=\sum_{i=1}^{n}x^{2w_i
阅读全文
摘要:"传送门" 生成函数的模板题 前置知识: $$ \sum_{i=0}^{+\infty}x^i=\frac{1}{1 x} $$ 其实就是等比数列求和公式,这就是公比为$x$的等比数列,然后取$x\in( 1,1)$ 也就是你只要会等比数列求和就行了 也就有 $$ (1+x+x^2+x^3+x^4+
阅读全文
摘要:"传送门" 思路还是很巧妙的。 显然能对答案产生贡献的最多颜色为$min\{m,n/S\}$ 设$f(i)$为出现次数为$S$的颜色种类至少有$i$种的涂色方案 那么 $$ f(i)=\binom{m}{i}\frac{n!}{(S!)^i(n iS)!}(m i)^{n iS} $$ 然后让我们分
阅读全文
摘要:"传送门" 正反两边dijkstra染色,然后枚举一下边,求出最小值就好啦 代码: c++ include include include include include using namespace std; void read(int &x) { char ch; bool ok; for(o
阅读全文
摘要:"传送门" 这个题好像 "bzoj4455:[Zjoi2016]小星星" 然后就可以类比那个思路将树形dp改为矩阵树定理,然后就做完了 代码: c++ include include include include using namespace std; void read(int &x) { c
阅读全文
摘要:"传送门" 考虑假如不考虑重复映射 那么显然可以得到一个$O(n^3)$的树形dp 然后考虑如何去掉不合法的情况? 容斥,考虑每次只能从一个点集$S$里选点(也就是至多$|S|$个点的映射的方案数) 那么显然就可以枚举点集$S$,做树形dp,然后容斥一下就做完了 总复杂度:$O(2^nn^3)$ 代
阅读全文

浙公网安备 33010602011771号