随笔分类 - 其他 - 思维题
摘要:看到这道题第一个想法肯定是按照套路钦定一些地方不合法,然后其他地方随便选,最后来一个二项式反演. 但是我们发现这个 DP 状态很难设置. 然后你发现一个非常神的性质:由于题中给的是绝对值,所以说一个位置要是不合法的话,只有两种数值的可能(+k和-k) 然后把位置 $i$ 和值 $i+/-k$ 相连,
阅读全文
摘要:我们令 $f[i]$ 表示以 $i$ 为根的删除方案数. 这里一定要注意一件事情:根据我们的定义,我们已经默认 $i$ 点为根的子树在删除时 $i$ 是最后删除的. 然后按照换根 DP 的套路转移就行,但是转移的时候组合数一定要注意. #include <cstring> #include <cst
阅读全文
摘要:Description Input Output 看到这种恰好的一般就是二项式反演了. 令 $f[i][j]$ 表示考虑糖果前 $i$ 个糖果,恰好比药片大 $j$ 个的方案数.(我们只选了 $j$ 个糖果) 转移的话我们将两个数组分别从小到大排序,这样就非常好转移了. 我们令 $l[i]$ 代表第
阅读全文
摘要:题意:在 $n$ 个数的 $2^n-1$ 个非空子集中选取 $m$ 个,且必须满足: 1. $m$ 个子集两两不同. 2. 每个数在 $m$ 个子集中出现总次数为偶数. 3. 每个子集非空. 令 $f[i]$ 表示选出了 $i$ 个集合且满足了上述 3 条限制的方案数. 直接求 $f[i]$ 比较困
阅读全文
摘要:这个题和那个城市规划几乎是一个套路. 就是钦定一个点,然后枚举这个点所在连通块大小,然后其余部分随便连. 由于我们钦定了一个点,所以我们算的方案数肯定不会重复. 即 $f[S]=TOT(S)-\sum_{T \subseteq S} f(T) \times TOT(S-T)$. code: #inc
阅读全文
摘要:题意: 给定一张图,和这个图的一颗生成树. 求:重新对这颗树标号,有多少种标号方式满足如果一条边 $(x,y)$ 在树中出现的话在图中也出现. 暴力做法:$f[i][j][S]$ 即在以 1 为根的树中遍历到点 $i$,该点映射的点是 $j$,且 $i$ 这颗子树映射的点集是 $S$. 转移的话时间
阅读全文
摘要:这个还是非常神仙的... code: #include <cstdio> #include <algorithm> #define N 1006 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespa
阅读全文
摘要:code: #include <cstdio> #include <string> #include <cstring> #include <algorithm> #define N 66 #define ll long long #define mod 998244353 using namesp
阅读全文
摘要:code: #include <cstdio> #include <cstring> #include <algorithm> #define ls x<<1 #define rs x<<1|1 #define N 2105 #define ll long long #define setIO(s)
阅读全文
摘要:换根DP 求一下每个点为起点的最长路径,然后用双指针扫一下统计答案就好了. code: #include <cstdio> #include <queue> #include <set> #include <algorithm> #define N 1000007 #define ll long l
阅读全文
摘要:Description H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构。伸展树(splay)是一种数据 结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必修技能。有一天,邪恶的“卡”带着 他的邪恶的“常数”来企图毁灭 H 国。“卡”给 H 国的人洗脑说
阅读全文
摘要:现在看来,这道题的 84 pts 随便拿啊. 100 pts 也不是很难,但是考场上太过于紧张加上心理素质不好吧... 84pts 暴力的话设状态 $f[i][j][k]$ 表示决策到第 $i$ 行,枚举的拿了 $j$ 个,其余拿了 $k$ 个. 但是我们把那个不等式拆开后发现其实表示的就是钦定的比
阅读全文
摘要:状态还比较自然. 令 $f[x][j]$ 表示 $x$ 的子树全被控制,且多出来 $j$ 层. 令 $g[x][j]$ 表示还需要 $j$ 层才能控制 $x$ 所有子树. 转移 $f[x][j]$ 的时候有两种情况:之前已经控制:$f[x][j]+g[y][j]$,之前没控制:$g[x][j+1]+
阅读全文
摘要:这个题有一个结论:如果用 $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 <=
阅读全文
摘要:这个状态的定义非常难想吧... $f[x][y]$ 表示以 $x$ 为根的子树中,其余点全部移到了应该移动到的位置,也建设了应该建设的仓库,而 $x$ 移动到 $y$ 的最小代价. 这里是事前钦定 $y$ 不建立仓库的. 那么,我们考虑如何从 $x$ 的儿子转移到 $x$: 若 $f[son][b]
阅读全文
摘要:给定 $n$,求一组合法解,使得 $\frac{1}{x}+\frac{1}{y}+\frac{1}{z}=\frac{2}{n}$ 不妨令 $z=n$,则问题转化为 $\frac{1}{x}+\frac{1}{y}=\frac{1}{n}$ 根据我们在高中学习的 "裂项" 法,可知 $\frac{
阅读全文
摘要:这个思路还是非常巧妙的. 困难在于我们需要同时维护以 $x$ 为分治中心,延伸出颜色相同/不同的最大值. 不同的话直接将权和相加,相同的话还需要减掉重复部分,这就比较难办. 但是我们发现,当以 $x$ 为分治中心时,$x$ 每一个儿子为根的子树的延伸颜色都是相同的. 所以我们可以将每一个点的所有儿子
阅读全文

浙公网安备 33010602011771号