摘要: 我们可以根据二进位划分集合,从高到底,越来越 首先,最高位不同的点集合中,必须存在一条边,所以,可以用trie树来处理该操作并统计该边的数目。 然后对于两个不同的集合,递归重复这样的操作,就会得到两个集合的MST。 附代码: 阅读全文
posted @ 2017-12-23 14:25 Mnirvana 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 二进制通常通过拆位来做,类欧几里得f裸题,直接上代码; 阅读全文
posted @ 2017-12-19 08:02 Mnirvana 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 最短路DAG + 支配树 支配树是一种解决必经点问题的数据结构。 在dijkstra中可以处理处拓扑序,进而建立最短路DAG 但由于求最短路时,可能会有未联通的点,所以在用最短路求拓扑序的时候,要把被更新的点pop掉。 附代码 阅读全文
posted @ 2017-12-15 10:51 Mnirvana 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 按秩合并的并查集支持删边操作。 附代码 阅读全文
posted @ 2017-12-14 09:50 Mnirvana 阅读(114) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include using namespace std; #define N 1010 #define For(i,j,n) for(int i=j;i void read(T&num) { char CH; bool F=false; for(CH=getchar();C... 阅读全文
posted @ 2017-12-14 08:43 Mnirvana 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 想学的到这里http://blog.csdn.net/sdj222555/article/details/7490797 阅读全文
posted @ 2017-12-13 21:28 Mnirvana 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 首先,有一个记住的结论: 一个点,只会与以它为原点建立的笛卡尔坐标系中各区域里距离其最近的点连边,且具有对称性。 如果暴力两边,那么复杂度O(n*n*8) 十分巨大。 那么怎么优化呢? 如果能够在某个区域中用较快的方法去连边,那么求其余区域时就可以进行翻转。 那么可以利用其单调性来求解。 设我们处理 阅读全文
posted @ 2017-12-13 20:43 Mnirvana 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 2118: 墨墨的等式 Description 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+anxn=B存在非负整数解的条件,他要求你编写一个程序,给定N、{an}、以及B的取值范围,求出有多少B可以使等式存在非负整数解。 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+…+an 阅读全文
posted @ 2017-12-13 09:01 Mnirvana 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 狼抓兔子 Description 现在小朋友们最喜欢的”喜羊羊与灰太狼”,话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:( 阅读全文
posted @ 2017-11-28 09:59 Mnirvana 阅读(147) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/dyzll/p/5887266.html 最大流最小割 阅读全文
posted @ 2017-11-27 14:51 Mnirvana 阅读(74) 评论(0) 推荐(0) 编辑