2017年10月30日
摘要: Problem 每个点都可以选择降落士兵,然后当一个点的子节点被攻占的数量超过读入中的限制后,这个城市也被占领。 每个点降落士兵都有一定的代价,问把这一个图全部攻占的最小代价。 Solution 这显然和儿子有关还与父亲有关 我们假设f[x]表示x在父亲之前被攻占,g[x]表示x再父亲之后被攻占 显 阅读全文
posted @ 2017-10-30 20:42 WizardCowboy 阅读(105) 评论(0) 推荐(0) 编辑
摘要: Problem 每个软件都要安装某些软件才能安装,而且都有体积和价值,求安装的价值最大值 Solution 对于每个环,我们可以知道必须全部一起取或者不取,因此我们先用Tarjan缩点 然后我们用一个树形DP就可以解决了 Notice 注意这颗树是如果一个节点没取,后面就都不能取了 Code 阅读全文
posted @ 2017-10-30 20:17 WizardCowboy 阅读(146) 评论(0) 推荐(0) 编辑
摘要: Problem 给你一个2 n的矩阵,要求你用补充叠的矩阵去框,要求每个矩阵框中的数之和为0,问最多可以用几个矩阵。 Solution 首先预处理出一个点到离它最近的一段和为0的区间的左端点 然后到这往前用记忆化搜索的方式DP就可以了 Notice 注意要记忆化 Code 阅读全文
posted @ 2017-10-30 20:02 WizardCowboy 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Problem 有一个2 n的方格矩阵 在一个格子上可以往旁边8个方向走(如果有格子),求有多少方案把2 n走完 Solution 我们用Fi表示从一个角出发走遍所有格子回到这一列另外一点的方案数 显然,F1 = 1,Fn = 2 Fn 1 = 2^(n 1) 我们再用Gi表示从一个角出发,走遍所有 阅读全文
posted @ 2017-10-30 16:10 WizardCowboy 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Problem 给你n个点的坐标和权值,然后一个点最多可以经过1次,最后要回到原点,求这条路径中包含的点的权值和除以路径长度的最大值。 Solution 我们可以很明显的得知,这条路径是个凸包(否则不但包含的点少了,路径也长了) 我们可以二分答案,然后用一个dp来验证答案: 所以我们用f[i]表示枚 阅读全文
posted @ 2017-10-30 13:41 WizardCowboy 阅读(105) 评论(0) 推荐(0) 编辑
摘要: Problem 每张牌有两个数字,你可以选择使用哪个数字,然后你还可以任意排序,求一个加一个减后的最小值。 Solution 显然,我们可以先全部加上,然后再选择n/2个改为减去。 因此我们对每张牌取最小值先加上,然后把两个数字的和放入数组中进行排序,最后减去大的那n/2个就好了。 Notice 没 阅读全文
posted @ 2017-10-30 12:57 WizardCowboy 阅读(77) 评论(0) 推荐(0) 编辑