博客园 - pony1993
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=175669
2015-11-26T11:15:50Z
pony1993
https://www.cnblogs.com/pony1993/
feed.cnblogs.com
https://www.cnblogs.com/pony1993/p/3430069.html
poj3683 Priest John's Busiest Day - pony1993
2-SAT 输出可行解找可行解的方案就是:根据第一次建的图建一个反图..然后求逆拓扑排序,建反图的原因是保持冲突的两个事件肯定会被染成不同的颜色求逆拓扑排序的原因也是为了对图染的色不会发生冲突,输出可行解就是遍历一次逆拓扑排序时染成的颜色,输出同一组颜色的解就是其中的一组可行解。代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 const int maxn = 2011; 8 const int maxm = 3000011; 9 struct node{ 10 int u; 1...
2013-11-18T11:25:00Z
2013-11-18T11:25:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】2-SAT 输出可行解找可行解的方案就是:根据第一次建的图建一个反图..然后求逆拓扑排序,建反图的原因是保持冲突的两个事件肯定会被染成不同的颜色求逆拓扑排序的原因也是为了对图染的色不会发生冲突,输出可行解就是遍历一次逆拓扑排序时染成的颜色,输出同一组颜色的解就是其中的一组可行解。代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 const int maxn = 2011; 8 const int maxm = 3000011; 9 struct node{ 10 int u; 1... <a href="https://www.cnblogs.com/pony1993/p/3430069.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/p/3427497.html
POJ3415 Common Substrings - pony1993
后缀数组 求长度不小于k的公共子串的个数代码: 1 #include 2 #include 3 4 const int maxn = 200011; 5 int len, len1; 6 int wa[maxn], wb[maxn], wv[maxn], wd[maxn], sa[maxn]; 7 int lcp[maxn], r[maxn], rank[maxn], height[maxn]; 8 9 int cmp(int *r, int a, int b, int l){ 10 return r[a] == r[b] && r[a+l] == r[b+l...
2013-11-17T00:40:00Z
2013-11-17T00:40:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】后缀数组 求长度不小于k的公共子串的个数代码: 1 #include 2 #include 3 4 const int maxn = 200011; 5 int len, len1; 6 int wa[maxn], wb[maxn], wv[maxn], wd[maxn], sa[maxn]; 7 int lcp[maxn], r[maxn], rank[maxn], height[maxn]; 8 9 int cmp(int *r, int a, int b, int l){ 10 return r[a] == r[b] && r[a+l] == r[b+l... <a href="https://www.cnblogs.com/pony1993/p/3427497.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2013/03/12/2955792.html
SDUT 1953 Idol - pony1993
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1953好长时间没写过博客了。。今天上英语课闲着无聊,聊天玩的时候有人问到了2-SAT。。突然就想起来了这道题。。。2-SAT嘛。。比赛的时候居然没想到。。给定需要满足的m个条件。把每个变量拆为两个点。一般情况下拆为2i和2i+1 分别代表它为真和为假 由于这道题是<1000的。且正的代表选,负的代表不选。那么我们可以把<999的作为要选的,>999的作为不选的。。比如,第一组样例中的 1 2 代表他投票赞成1和2 那
2013-03-12T07:19:00Z
2013-03-12T07:19:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1953好长时间没写过博客了。。今天上英语课闲着无聊,聊天玩的时候有人问到了2-SAT。。突然就想起来了这道题。。。2-SAT嘛。。比赛的时候居然没想到。。给定需要满足的m个条件。把每个变量拆为两个点。一般情况下拆为2i和2i+1 分别代表它为真和为假 由于这道题是<1000的。且正的代表选,负的代表不选。那么我们可以把<999的作为要选的,>999的作为不选的。。比如,第一组样例中的 1 2 代表他投票赞成1和2 那 <a href="https://www.cnblogs.com/pony1993/archive/2013/03/12/2955792.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/12/07/2807262.html
poj 3436 ACM Computer Factory - pony1993
题目链接:http://poj.org/problem?id=3436纠结了好几天的题目,看懂题意就看了好长时间,题目大意:有N台机器,每台机器有P部分,每部分有自己的输入、输出,因此每台机器有2*P+1种参数:第一个参数Q:该机器的容量;接下来P个参数S:该机器各部分的输入;接下来P个参数D:该机器各部分的输出。其中输入有三种情况:0,1,20:该部分必须不要;1:该部分必须要;2:该部分可有可无输出有2种情况:0,1 0:该部分不存在;1:该部分存在题目要求的是最大流、流量改变的边数和改变的边。思路:如果某个节点 u的输入部分没有1,则添加一条 s->u 路径,容量为Qu;如果某个节
2012-12-07T06:48:00Z
2012-12-07T06:48:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】题目链接:http://poj.org/problem?id=3436纠结了好几天的题目,看懂题意就看了好长时间,题目大意:有N台机器,每台机器有P部分,每部分有自己的输入、输出,因此每台机器有2*P+1种参数:第一个参数Q:该机器的容量;接下来P个参数S:该机器各部分的输入;接下来P个参数D:该机器各部分的输出。其中输入有三种情况:0,1,20:该部分必须不要;1:该部分必须要;2:该部分可有可无输出有2种情况:0,1 0:该部分不存在;1:该部分存在题目要求的是最大流、流量改变的边数和改变的边。思路:如果某个节点 u的输入部分没有1,则添加一条 s->u 路径,容量为Qu;如果某个节 <a href="https://www.cnblogs.com/pony1993/archive/2012/12/07/2807262.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/22/2782221.html
Codeforces Round #151 (Div. 2) D. Colorful Graph - pony1993
给一个n个点、m条边,无自环的无向图,每个顶点有一个颜色值,在出现过的颜色值中找到一个有最多相邻的颜色值,如果有多种相同的,输出一个小的。 1 const int maxn = 100011; 2 set<int>s[maxn]; 3 int c[maxn]; 4 bool vis[maxn]; 5 6 int main(){ 7 #ifndef ONLINE_JUDGE 8 freopen("in.txt", "r", stdin); 9 #endif10 int n, m, a, b;11 scan_d(n);12 scan_d(m...
2012-11-22T03:07:00Z
2012-11-22T03:07:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】给一个n个点、m条边,无自环的无向图,每个顶点有一个颜色值,在出现过的颜色值中找到一个有最多相邻的颜色值,如果有多种相同的,输出一个小的。 1 const int maxn = 100011; 2 set<int>s[maxn]; 3 int c[maxn]; 4 bool vis[maxn]; 5 6 int main(){ 7 #ifndef ONLINE_JUDGE 8 freopen("in.txt", "r", stdin); 9 #endif10 int n, m, a, b;11 scan_d(n);12 scan_d(m... <a href="https://www.cnblogs.com/pony1993/archive/2012/11/22/2782221.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/20/2779596.html
伸展树 - pony1993
1、 概述二叉查找树(Binary Search Tree,也叫二叉排序树,即Binary Sort Tree)能够支持多种动态集合操作,它可以用来表示有序集合、建立索引等,因而在实际应用中,二叉排序树是一种非常重要的数据结构。从算法复杂度角度考虑,我们知道,作用于二叉查找树上的基本操作(如查找,插入等)的时间复杂度与树的高度成正比。对一个含n个节点的完全二叉树,这些操作的最坏情况运行时间为O(log n)。但如果因为频繁的删除和插入操作,导致树退化成一个n个节点的线性链(此时即为一个单链表),则这些操作的最坏情况运行时间为O(n)。为了克服以上缺点,很多二叉查找树的变形出现了,如红黑树、AV
2012-11-20T11:16:00Z
2012-11-20T11:16:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】1、 概述二叉查找树(Binary Search Tree,也叫二叉排序树,即Binary Sort Tree)能够支持多种动态集合操作,它可以用来表示有序集合、建立索引等,因而在实际应用中,二叉排序树是一种非常重要的数据结构。从算法复杂度角度考虑,我们知道,作用于二叉查找树上的基本操作(如查找,插入等)的时间复杂度与树的高度成正比。对一个含n个节点的完全二叉树,这些操作的最坏情况运行时间为O(log n)。但如果因为频繁的删除和插入操作,导致树退化成一个n个节点的线性链(此时即为一个单链表),则这些操作的最坏情况运行时间为O(n)。为了克服以上缺点,很多二叉查找树的变形出现了,如红黑树、AV <a href="https://www.cnblogs.com/pony1993/archive/2012/11/20/2779596.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/15/2772261.html
UVA 11464 Even Parity - pony1993
题意:给出一个n*n的 0、1矩阵,把尽量少的0改成1,使得每个元素的上下左右的元素之和都为偶数。思路:约束条件是某元素周围上下左右四个元素之和必须为偶数,那么,只需要枚举第一行,剩下的n-1行根据前一行递推出来。话说最近改了一下代码风格,盗用了某大神的define和template。。。下面代码就不贴那部分了。代码: 1 const int maxn = 20; 2 const int inf = 9999999; 3 int mi; 4 int n, a[maxn][maxn], b[maxn][maxn], c[maxn]; 5 6 int make(){ 7 int v; 8...
2012-11-15T13:21:00Z
2012-11-15T13:21:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】题意:给出一个n*n的 0、1矩阵,把尽量少的0改成1,使得每个元素的上下左右的元素之和都为偶数。思路:约束条件是某元素周围上下左右四个元素之和必须为偶数,那么,只需要枚举第一行,剩下的n-1行根据前一行递推出来。话说最近改了一下代码风格,盗用了某大神的define和template。。。下面代码就不贴那部分了。代码: 1 const int maxn = 20; 2 const int inf = 9999999; 3 int mi; 4 int n, a[maxn][maxn], b[maxn][maxn], c[maxn]; 5 6 int make(){ 7 int v; 8... <a href="https://www.cnblogs.com/pony1993/archive/2012/11/15/2772261.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/12/2766949.html
《算法竞赛入门经典——训练指南》第一章—算法设计基础 - pony1993
这是第一章的所有例题和课后习题,寒假前的任务,尽量刷吧。。。问题求解策略例题例题 1UVa11292The Dragon of Loowater排序后用贪心法例题 2UVa11729Commando War用贪心法求最优排列;用“相邻交换法”证明正确性例题 3UVa11300Spreading The Wealth用代数法进行数学推导;中位数例题 4LA3708Graveyard推理;参考系例题 5UVa10881Piotr's Ants等效变换;排序例题 6LA2995Image is Everything三维坐标系;迭代更新例题 7UVa11464Even Party部分枚举;递推
2012-11-12T12:23:00Z
2012-11-12T12:23:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】这是第一章的所有例题和课后习题,寒假前的任务,尽量刷吧。。。问题求解策略例题例题 1UVa11292The Dragon of Loowater排序后用贪心法例题 2UVa11729Commando War用贪心法求最优排列;用“相邻交换法”证明正确性例题 3UVa11300Spreading The Wealth用代数法进行数学推导;中位数例题 4LA3708Graveyard推理;参考系例题 5UVa10881Piotr's Ants等效变换;排序例题 6LA2995Image is Everything三维坐标系;迭代更新例题 7UVa11464Even Party部分枚举;递推 <a href="https://www.cnblogs.com/pony1993/archive/2012/11/12/2766949.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/12/2766929.html
关于下一步的计划 - pony1993
刘汝佳新出了一本《算法竞赛入门经典——训练指南》知识点挺全面的,按照这本书刷上面的题吧。。以后或许博客不怎么经常更新了,处于学习新东西的阶段,就个人而言,我更喜欢多看书然后配合着做题。一般情况下我不会每做一道题就记录在博客中,博客更多的用来记录自己做不出来后看了别人思路或者想了好长时间才做出来的题。so,博客大概会经常性的不更新。。然后专题的题目总结大概会发到独立博客。。。另外,自己不会的太多了,好多算法只是知道是干什么的。完全没用过。。。补补数学部分、数据结构部分、计算几何部分。压力还是挺大的。。。。以后跟着总体的计划POJ 慢慢做,然后是《训练指南》的题。。把上面不会的那三部分好好补补..
2012-11-12T12:06:00Z
2012-11-12T12:06:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】刘汝佳新出了一本《算法竞赛入门经典——训练指南》知识点挺全面的,按照这本书刷上面的题吧。。以后或许博客不怎么经常更新了,处于学习新东西的阶段,就个人而言,我更喜欢多看书然后配合着做题。一般情况下我不会每做一道题就记录在博客中,博客更多的用来记录自己做不出来后看了别人思路或者想了好长时间才做出来的题。so,博客大概会经常性的不更新。。然后专题的题目总结大概会发到独立博客。。。另外,自己不会的太多了,好多算法只是知道是干什么的。完全没用过。。。补补数学部分、数据结构部分、计算几何部分。压力还是挺大的。。。。以后跟着总体的计划POJ 慢慢做,然后是《训练指南》的题。。把上面不会的那三部分好好补补.. <a href="https://www.cnblogs.com/pony1993/archive/2012/11/12/2766929.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/09/2762289.html
HDU 4460 Friend Chains(2012年杭州赛区现场赛H题) - pony1993
题意:一个有n个点,m条边的无向图,找出最短路中的两个点的路径最大值。n次spfa求最短路,然后找出最大值即可,踩着时间线险过。。。代码: 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cstdio> 5 #include <queue> 6 #include <string> 7 #include <map> 8 using namespace std; 9 10 const int oo=1<
2012-11-09T03:32:00Z
2012-11-09T03:32:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】题意:一个有n个点,m条边的无向图,找出最短路中的两个点的路径最大值。n次spfa求最短路,然后找出最大值即可,踩着时间线险过。。。代码: 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cstdio> 5 #include <queue> 6 #include <string> 7 #include <map> 8 using namespace std; 9 10 const int oo=1< <a href="https://www.cnblogs.com/pony1993/archive/2012/11/09/2762289.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/11/08/2761401.html
HDU 4462 Scaring the Birds(2012年杭州赛区现场赛J题) - pony1993
弱菜的做法,生成所有子集,然后从集合元素个数少的开始判断。有一个大坑是,所有的格子都是空地,这种情况下不用放,输出0。 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 using namespace std; 6 struct sub{ 7 int u; 8 int v; 9 int w; 10 }q[2001]; 11 12 struct node{ 13 int b[2001]; 14 int num; ...
2012-11-08T14:10:00Z
2012-11-08T14:10:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】弱菜的做法,生成所有子集,然后从集合元素个数少的开始判断。有一个大坑是,所有的格子都是空地,这种情况下不用放,输出0。 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 using namespace std; 6 struct sub{ 7 int u; 8 int v; 9 int w; 10 }q[2001]; 11 12 struct node{ 13 int b[2001]; 14 int num; ... <a href="https://www.cnblogs.com/pony1993/archive/2012/11/08/2761401.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/29/2745454.html
HDU 4442 Physical Examination(2012年金华赛区现场赛A题) - pony1993
对于两组数据 x1 y1和x2 y2根据题目可以得出如果第一组数据排在第二组数据前面,那么x1*y2<x2*y1。所以只要排下序就可以了。代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #define LL long long 6 using namespace std; 7 struct node 8 { 9 LL x;10 LL y;11 }p[100010];12 const LL mod=365*2
2012-10-29T14:04:00Z
2012-10-29T14:04:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】对于两组数据 x1 y1和x2 y2根据题目可以得出如果第一组数据排在第二组数据前面,那么x1*y2<x2*y1。所以只要排下序就可以了。代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #define LL long long 6 using namespace std; 7 struct node 8 { 9 LL x;10 LL y;11 }p[100010];12 const LL mod=365*2 <a href="https://www.cnblogs.com/pony1993/archive/2012/10/29/2745454.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/19/2731468.html
关于C++的***5的输出问题 - pony1993
转自:http://blog.renren.com/blog/315991004/876120504以下语言环境为g++猜猜看这些代码的输出结果?printf("%0.1lf\n", 0.05);printf("%0.1lf\n", 0.25);printf("%0.1lf\n", 0.75);printf("%0.2lf\n", 0.025);printf("%0.2lf\n", 0.015);printf("%0.2lf\n", 0.125);有人可能会说了这不是很简单的
2012-10-19T10:05:00Z
2012-10-19T10:05:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】转自:http://blog.renren.com/blog/315991004/876120504以下语言环境为g++猜猜看这些代码的输出结果?printf("%0.1lf\n", 0.05);printf("%0.1lf\n", 0.25);printf("%0.1lf\n", 0.75);printf("%0.2lf\n", 0.025);printf("%0.2lf\n", 0.015);printf("%0.2lf\n", 0.125);有人可能会说了这不是很简单的 <a href="https://www.cnblogs.com/pony1993/archive/2012/10/19/2731468.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/10/2718643.html
POJ 3469 Dual Core CPU(最小割) - pony1993
题目链接:http://poj.org/problem?id=3469sollution:把两个CPU视为源点和汇点、模块视为顶点。源点到第i个模块连容量为Ai的边,第i个模块到汇点连容量为Bi的边,然后两个特殊模块连双向边。根据最大流最小割定理,求最大流。代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #include <queue> 6 using namespace std; 7 const i
2012-10-10T09:31:00Z
2012-10-10T09:31:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】题目链接:http://poj.org/problem?id=3469sollution:把两个CPU视为源点和汇点、模块视为顶点。源点到第i个模块连容量为Ai的边,第i个模块到汇点连容量为Bi的边,然后两个特殊模块连双向边。根据最大流最小割定理,求最大流。代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #include <queue> 6 using namespace std; 7 const i <a href="https://www.cnblogs.com/pony1993/archive/2012/10/10/2718643.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/10/2718537.html
最小割 - pony1993
转自mjmjmtl大牛:一、基本问题:1.到底什么是割:原始点集为V,选出一些点集S使得s∈S,T=V-S,t∈T,则S到T的边为S到T割,记做[S,T]。2.什么是最小割:图中所有的割中,边权值和最小的割为最小割!3.割得容量容量和流量计算的区别:割[S,T]的容量为∑(边(u,v)的容量和),其中u∈S,∈T。也就是说割的容量不计算反向的边!!而流量为正向的和反向的代数和。4.最大流-最小割定理:最大流的值为最小割的容量!5.怎样求割:求完最大流后,在残留网络中从source开始dfs,被染色的为S,未被染色的为T,则边集[S,T]为割。(或者从sink反向dfs,被染色的为T,未被染色的
2012-10-10T08:38:00Z
2012-10-10T08:38:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】转自mjmjmtl大牛:一、基本问题:1.到底什么是割:原始点集为V,选出一些点集S使得s∈S,T=V-S,t∈T,则S到T的边为S到T割,记做[S,T]。2.什么是最小割:图中所有的割中,边权值和最小的割为最小割!3.割得容量容量和流量计算的区别:割[S,T]的容量为∑(边(u,v)的容量和),其中u∈S,∈T。也就是说割的容量不计算反向的边!!而流量为正向的和反向的代数和。4.最大流-最小割定理:最大流的值为最小割的容量!5.怎样求割:求完最大流后,在残留网络中从source开始dfs,被染色的为S,未被染色的为T,则边集[S,T]为割。(或者从sink反向dfs,被染色的为T,未被染色的 <a href="https://www.cnblogs.com/pony1993/archive/2012/10/10/2718537.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/06/2712778.html
int ,long , long long类型的范围 - pony1993
unsigned int 0~4294967295int 2147483648~2147483647unsigned long 0~4294967295long 2147483648~2147483647long long-9223372036854775808~9223372036854775807unsigned long long的最大值:1844674407370955161
2012-10-06T02:07:00Z
2012-10-06T02:07:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】unsigned int 0~4294967295int 2147483648~2147483647unsigned long 0~4294967295long 2147483648~2147483647long long-9223372036854775808~9223372036854775807unsigned long long的最大值:1844674407370955161 <a href="https://www.cnblogs.com/pony1993/archive/2012/10/06/2712778.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/04/2711352.html
POJ 1679 The Unique MST(判断最小生成树是否唯一) - pony1993
思路:(1)对图中每条边,扫描其他边,如果存在相同权值的边,则对该边做标记。(2)然后用Kruskal求MST。(3)求得MST后,如果该MST中未包含做了标记的边,即可判定MST唯一,如果包含了做了标记的边,则依次去掉这些再求MST,如果求的MST权值和原MST权值相同,即可判定MST不唯一。代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cstdio> 6 #include
2012-10-04T03:13:00Z
2012-10-04T03:13:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】思路:(1)对图中每条边,扫描其他边,如果存在相同权值的边,则对该边做标记。(2)然后用Kruskal求MST。(3)求得MST后,如果该MST中未包含做了标记的边,即可判定MST唯一,如果包含了做了标记的边,则依次去掉这些再求MST,如果求的MST权值和原MST权值相同,即可判定MST不唯一。代码: 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cstdio> 6 #include <a href="https://www.cnblogs.com/pony1993/archive/2012/10/04/2711352.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/03/2710879.html
HDU 4259 Double Dealing - pony1993
给你n张卡片,分给k个人,从1-n轮流分。然后,重新把卡片放在一起。第1个人的放在最上边,后面的依次放下面。 再重新分,再放,问多少次后会恢复原样。10 3第一次10 7 4 1 8 5 2 9 6 3第二次3 2 1 10 9 8 7 6 5 4第三次4 7 10 3 6 9 2 5 8 1第四次1 2 3 4 5 6 7 8 9 10 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #define LL long l
2012-10-03T07:30:00Z
2012-10-03T07:30:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】给你n张卡片,分给k个人,从1-n轮流分。然后,重新把卡片放在一起。第1个人的放在最上边,后面的依次放下面。 再重新分,再放,问多少次后会恢复原样。10 3第一次10 7 4 1 8 5 2 9 6 3第二次3 2 1 10 9 8 7 6 5 4第三次4 7 10 3 6 9 2 5 8 1第四次1 2 3 4 5 6 7 8 9 10 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #define LL long l <a href="https://www.cnblogs.com/pony1993/archive/2012/10/03/2710879.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/10/01/2709817.html
最大流Dinic算法 - pony1993
求解最大流一般采用两种思路,一种是预流,另一各是增广路。增广路这种思想是基于以下定理:定理一:设网络 G 的源为 S, 汇和 T,F和 C 分别为 G 的流和容量,则 F 是最大流当且仅当 G 中不存在可增广路。由此定理可以设计很多算法来计算最大流,Dinic 算法是其中一种比较高效的方法,其复杂度为 O(n2*m)Dinic 算法的基本步骤为:1) 计算残余网络的层次图。我们定义 h[i] 为顶点 i 距离源 S 所经过到最小边数,求出所有顶点的 h 值,h[] 值相同的顶点属于同一层,这就是网络的层次图。2) 在层次图上进行 BFS 增广,直到不存在增广路径。这时求得的增广路径上顶点是分层
2012-10-01T09:12:00Z
2012-10-01T09:12:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】求解最大流一般采用两种思路,一种是预流,另一各是增广路。增广路这种思想是基于以下定理:定理一:设网络 G 的源为 S, 汇和 T,F和 C 分别为 G 的流和容量,则 F 是最大流当且仅当 G 中不存在可增广路。由此定理可以设计很多算法来计算最大流,Dinic 算法是其中一种比较高效的方法,其复杂度为 O(n2*m)Dinic 算法的基本步骤为:1) 计算残余网络的层次图。我们定义 h[i] 为顶点 i 距离源 S 所经过到最小边数,求出所有顶点的 h 值,h[] 值相同的顶点属于同一层,这就是网络的层次图。2) 在层次图上进行 BFS 增广,直到不存在增广路径。这时求得的增广路径上顶点是分层 <a href="https://www.cnblogs.com/pony1993/archive/2012/10/01/2709817.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/pony1993/archive/2012/09/30/2709257.html
HDU 4280 Island Transport(网络流) - pony1993
有N个岛屿 M条无向路 每个路有一最大允许的客流量,求从最西的那个岛屿最多能运用多少乘客到最东的那个岛屿。 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <queue> 5 #define M 410000//边 6 #define N 110000//点 7 using namespace std; 8 #define INF 0x3f3f3f3f 9 struct edge 10 { 11 int from; 12 int to; 13 in
2012-09-30T08:22:00Z
2012-09-30T08:22:00Z
pony1993
https://www.cnblogs.com/pony1993/
【摘要】有N个岛屿 M条无向路 每个路有一最大允许的客流量,求从最西的那个岛屿最多能运用多少乘客到最东的那个岛屿。 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <queue> 5 #define M 410000//边 6 #define N 110000//点 7 using namespace std; 8 #define INF 0x3f3f3f3f 9 struct edge 10 { 11 int from; 12 int to; 13 in <a href="https://www.cnblogs.com/pony1993/archive/2012/09/30/2709257.html" target="_blank">阅读全文</a>