摘要: 给出一个有向图,求一个最大的结点集合,任意两个点u,v。u可到达v或v可到达u。一个强连通分量肯定一起选的。而且只能在一条路径上。所以先找出所有scc,然后缩点找一条最大权的路径,按拓扑序跑DAG上的dp。注意0,0这组数据#includeusing namespace std;const int ... 阅读全文
posted @ 2015-09-01 22:45 陈瑞宇 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 把证明的关系看出一张图,最终就是要所有的点都在至少一个环中。环的判断和度数有关。用tarjan找强连通分量,在一个强连通分量点已经等价缩点以后形成一个DAG,计算入度为0的点数a,出度为0的b,取其中大的一个。特判强连通分量数为1的情况。看懂tarjan算法以后还是比较简单的#includeusin... 阅读全文
posted @ 2015-09-01 21:38 陈瑞宇 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 补题,逆序考虑每个询问的时间,这样每次就变成出现新岛屿,然后用并查集合并统计。fa = -1表示没出现。以前写过,但是几乎忘了,而且以前写得好丑的,虽然常数比较小,现在重新写练练手。每个单词后面都要加空格不然PE#includeusing namespace std;const int maxn =... 阅读全文
posted @ 2015-09-01 19:45 陈瑞宇 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 题意:在一颗树上要求一个到其他结点容量和最大的点,i,j之前的容量定义为i到j的路径上的最小边容量。一开始想过由小到大的去分割边,但是很难实现,其实换个顺序就很容易做了,类似kruskal的一个贪心算法,从大到小的连边,每次连通两个分量A和B,这样可以新边容量一定是两个分量相互到达的最小容量,其余边... 阅读全文
posted @ 2015-09-01 18:05 陈瑞宇 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 题意比较坑,移动完以后的士兵不能再次移动,不然样例都过不了。。。最小值最大满足决策单调性所以二分答案,跑网络流验证是否可行。这种题重点在建图,为了保证只移动一次,拆点,一个入点一个出点,到了出点的自然不能再次调度。不在边界上的边连一条容量为1的边表示至少留一个人,在边界上的与T的连边就设置成mid。... 阅读全文
posted @ 2015-09-01 12:57 陈瑞宇 阅读(290) 评论(0) 推荐(0) 编辑