题目:https://www.luogu.org/problemnew/show/P4099 结果还是看了题解才会…… 关键是状态,f[ i ][ j ] 表示 i 子树. i 号点是第 j 个出现的方案数. 合并的时候,很重要的是去枚举孩子 v 有 k 个点放在了第 i 个点前面.这样 v 可以在的位置就根据该边是 > 还是 < 而是一个前/后缀.这样就是 n2 的了. #include<iostream> #include<cstdio> #include<c…
题目描述 Welcome to SAO ( Strange and Abnormal Online).这是一个 VR MMORPG, 含有 n 个关卡.但是,挑战不同关卡的顺序是一个很大的问题. 有 n – 1 个对于挑战关卡的限制,诸如第 i 个关卡必须在第 j 个关卡前挑战, 或者完成了第 k 个关卡才能挑战第 l 个关卡.并且,如果不考虑限制的方向性, 那么在这 n – 1 个限制的情况下,任何两个关卡都存在某种程度的关联性.即, 我们不能把所有关卡分成两个非空且不相交的子集,使得这两个子…
洛谷loj Desription Bob 喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的方法.现在他有个问题. 现在他有座古城堡,古城堡的路形成一棵树.他要在这棵树的节点上放置最少数目的士兵,使得这些士兵能够瞭望到所有的路. 注意:某个士兵在一个节点上时,与该节点相连的所有边都将能被瞭望到. 请你编一个程序,给定一棵树,帮 Bob 计算出他最少要放置的士兵数. Sol 状态: f[i][0]表示i不放士兵时,以i为根的子树所需要的最小士兵数 f[i][1]表示i放士兵时,以i为…