反向思考
文章平均质量分 54
mosquito_zm
这个作者很懒,什么都没留下…
展开
-
CodeForces - 757C (反向思维)
题目链接 本题一开始正面去想,就像是一个集合的操作,极其复杂。但实际上,如果我们倒着想,将每个动物所在的gym都记录下来,如果出现多次,就记录多次。那么我们知道,只要两个动物的出现序列相同,就可以交换。而判断相同时,我们可以用类似后缀数组判断时的思想,将所有序列都排好序,然后只有相邻的序列才有可能相等。这样,只要扫一遍,就可以求出答案。 代码如下: #include using names原创 2017-07-12 11:23:08 · 486 阅读 · 0 评论 -
2017 Multi-University Training Contest - Team 3 1005 计算贡献值
题意:给出n个点n - 1条边组成的树,每条边有权值,现在问你把2 3 ... n 这n - 1个点分成k部分,这k部分都是两两不相交的,然后在k部分中每一部分添加1这个点,然后求出每部分的最小生成树,要求k部分的最小生成树的权值和最大,求出这个值 思路:以1为根建树,算每一条边的贡献,如果这条边下面有x个结点,如果x >= k那么这条边会被算k次,否则就是x次,相当于把这些点放到不同的集合转载 2017-08-02 11:13:59 · 468 阅读 · 0 评论