摘要:
数字很多,但是由于总和不超过 $2\times 10^6$,所以最多只能凑出来 $2\times 10^6$ 种算术和. 由于这里是对算是和取异或,所以我们只需关注每种算术和出现次数的奇偶. 由于奇奇 $\Rightarrow$ 偶,奇偶 $\Rightarrow$ 奇,偶偶 $\Rightarro 阅读全文
摘要:
现在看来,这道题的 84 pts 随便拿啊. 100 pts 也不是很难,但是考场上太过于紧张加上心理素质不好吧... 84pts 暴力的话设状态 $f[i][j][k]$ 表示决策到第 $i$ 行,枚举的拿了 $j$ 个,其余拿了 $k$ 个. 但是我们把那个不等式拆开后发现其实表示的就是钦定的比 阅读全文
摘要:
令 $f[i][j][k]$ 表示 $fj$ 扫到 $i$,$fp$ 扫到 $j$,已经选了 $k$ 个身高的所有状态的前缀和. 我们有 $f[i][j][k]=f[i-1][j][k]+f[i][j-1][k]-f[i-1][j-1][k]$,这步是一个简单的容斥. 然后如果有 $fj[i]=fp 阅读全文
摘要:
状态还比较自然. 令 $f[x][j]$ 表示 $x$ 的子树全被控制,且多出来 $j$ 层. 令 $g[x][j]$ 表示还需要 $j$ 层才能控制 $x$ 所有子树. 转移 $f[x][j]$ 的时候有两种情况:之前已经控制:$f[x][j]+g[y][j]$,之前没控制:$g[x][j+1]+ 阅读全文
摘要:
显然01分数规划转成二分答案+判断是否大于 0 的问题. 这个题有一个坑点:不止根节点的父亲可能是 0 号节点(0号节点也是不能省略的) code: #include <cstdio> #include <string> #include <cstring> #include <iostream> 阅读全文
摘要:
这个题有一个结论:如果用 $x$ 个点能凑出的给点个数在 $[L,R]$ 之间,那么任意 $v\in [L,R]$ 一定能取到. 知道这个结论之后跑一个树形背包就行了,注意在跑背包的时候上界一定要限制好,要不然时间复杂度会多一个 $O(n)$ 的. code: #include <cstdio> # 阅读全文
摘要:
Description Viruses are usually bad for your health. How about fighting them with... other viruses? In this problem, you need to find out how to synth 阅读全文
摘要:
倒在了性质分析上....(还有仔细读题) 仔细读题后,我们发现红色边只能连接一个连通块和一个叶节点(或两个叶节点). 然后如果一个状态是合法的,当且仅当以某个点为根时所有蓝边都是形如 son[x]->x->fa[x] 然后因为有这条性质,我们就可以进行树形DP了. 令 $1$ 为根,$f[x]$ 表 阅读全文
摘要:
Description 给定一颗 N 个点的树,树上的每个点或者是红色,或者是黑色。 每个单位时间内,你可以任选两个点,交换它们的颜色。 出于某种恶趣味,你希望用最少的时间调整结点的颜色,使得对于每个点,离它最近的黑色点与它的距离不超过 x。 Input 输入的第一行包含整数 N 和 x(1 <= 阅读全文
摘要:
建立一个回文自动机,然后开一个桶遍历一下回文树就好了. code: #include <cstdio> #include <vector> #include <string> #include <cstring> #include <algorithm> #define N 500007 using 阅读全文