这题应该分两步来做:1、拓扑排序,去掉无敌点2、求最大闭合子图需要注意几点:1、拓扑排序时,如果(i,j)可以攻击到(x,y),那么增加(x,y)的入度,而不是(i,j)的入度 因为入度代表着要攻击它需要事先攻击几个点2、求最大闭合子图时,用所有的正权点-最大流3、求最大闭合子图时,如果(i,j)... Read More
题解:最小生成树的两个性质:1、边权相等的边的个数一定。2、做完边权为w的所有边时,图的连通性相同。证明:1、边权相等的边的个数不一样的话就不会都同时是最小生成树了。2、假设每种方法的做完边权为w的连通性不同,那么假设i边和j边没有同时被选,那么我们完全可以在一种方案中加入i边(或j边),使得连通性... Read More
还是纯粹不会啊……到底该怎么办http://blog.sina.com.cn/s/blog_86942b1401016m3g.htmlhttp://www.cnblogs.com/datam-cy/archive/2012/06/12/NOI2004-hut.html 1 var n,m,i,ln,... Read More
这题又是纯数论题……独立数就是欧拉函数,政客和军人的含义已经说的很清楚了,学者是最多的……首先,如果我们知道了政客和军人的答案,那就只要用n的所有因子的欧拉函数值减去这两个值,然后取模就行了。但一个数的因子有很多,而且题目中给的数据范围又颇大,所以我们想肯定有什么方法可以快速推出一个数的所有因子的欧... Read More
原先就看过这道题,觉得很复杂。不知道为什么今天一看觉得好水啊……难道这就是并查集的启发式合并?数组d【i】表示i到其父节点的距离,即中间隔了多少船舰。数组sum【i】记录以i为根的集合总共有多少个元素,将新节点插入的时候距离设为sum【i】就好了。代码: 1 var fa,d,sum:array[... Read More