什么鬼noip互测题... 这题很显然是树形dp,但设计状态以及转移是个难点 记状态f[i][j][k]表示以i为根节点的子树,离i最近的祖宗节点编号为j放了虫洞(伐木场?),i的子树内放了k个伐木场的方案数 设to为i的某个子节点,当i不放伐木场时,有: dp[i][j][k]=min(dp[to Read More
然后考虑正解 我们发现,最坏情况就是每个点都派驻军队,所以答案至多是“.”的数目 而且,每个点都至多只有一个入度和一个出度,所以我们可以将每个点拆成两个点,一个作为入点,一个作为出点,然后所有图上能到达的点由出点向入点建图 这样整个图就形成了一个二分图 然后在整个图上跑二分图匹配即可 答案即为“.” Read More
做这题之前先看道高考真题(好像是真题,我记不清了) 例:已知一个由n个0和n个1排列而成的数列,要求对于任意k∈N*且k∈[1,2n],在前k个数中1的个数不少于0的个数,求当n=4时这样的数列的数量。 解:14个(策略:暴力枚举,时间复杂度O(2^n)) 所以本题其实就是对高考真题的一个一般化推广 Read More
我说这是我们的noip互测题你信吗... 首先介绍一下仙人掌(略,参见题面) 然后我们思考一下怎么做: 首先,如果原图是一棵树,那么做法是很显然的(树上最长链嘛) 但是,图是一个仙人掌,所以树上最长链的做法有bug 所以我们考虑:是否能将树上的做法移接到仙人掌上即可 怎么移接? 我们看到,根据仙人掌 Read More