摘要: 匈牙利算法可以求解最大匹配数, 其基本思路是不断地寻找增广路, 由于增广路肯定是奇数个边,并且非匹配边比匹配边多一条, 因此找到增广路以后调换匹配边和非匹配边的就可以使匹配边多一条, 不断重复这个过程即可。。模板如下: 第二次整理: struct Hungarian { int n; //顶点的数量 阅读全文
posted @ 2016-01-26 14:06 xing-xing 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 这个题的意思是有N个奶牛, M个围栏, 一个奶牛喜欢并且只会在某个围栏中产奶, 最多能使几个奶牛同时产奶?可以构造这样的一个图,这个图的源点指向每个奶牛, 每个奶牛指向自己喜欢的围栏, 每个围栏指向汇点, 求解一次最大流即可。代码如下:/* ID: m1500293 LANG: C+... 阅读全文
posted @ 2016-01-23 23:45 xing-xing 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 裸网络流最大流题, 我使用了EdmondsKarp算法来解决这个问题, 其中1是源点, m是汇点。代码如下:/* ID: m1500293 LANG: C++ PROG: ditch*/#include #include #include #include #include u... 阅读全文
posted @ 2016-01-22 15:38 xing-xing 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 这道题就是给你两个序列A,和B, 然后问你求出一个用最少的Ade子序列组成B的方法。。例如A = abc B = abccba, 那么就可以用两个A表示B, 一个是正的序列, 另外一个是负的序列。对于这个问题我们先做一个小小的转换,我们将A倒置变为A1,然后就是用递增的A和A1序列表示B,我们用... 阅读全文
posted @ 2016-01-10 21:38 xing-xing 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 首先我们将这个数化成唯一分解的形式, 也就是这样x = p1^a1*p2^a2*...pn^an, 我们定义答案为f(x),首先我们定义d(x)为x的约数的个数, 那么f(x) = x^(d(x)/2), 由费马小定理m为素数a^(m-1) == 1 (mod m) => a^x = a^x%(... 阅读全文
posted @ 2016-01-09 19:46 xing-xing 阅读(1399) 评论(0) 推荐(0) 编辑
摘要: 这道题就是计算三角形里面的格点的个数, 可以用匹克定理, s = n + b/2 - 1; 其中s是格点多边形的面积, n是多边形内部的格点数目, b是边界上的格点,假设有两个坐标(x1, y1) (x2, y2) b = gcd(abs(x1-x2), (y1-y2)).代码如下:/* ... 阅读全文
posted @ 2016-01-05 11:45 xing-xing 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目意思是有N首歌, M张光盘, 每张光盘的容量为T,现在要将这些歌曲按照时间顺序写入M张光盘中, 每首歌曲必须完整的存入一张光盘中,并且必须严格按照时间顺序写入, 问你这M张光盘最多可以容纳几首音乐?我们可以定义f[i][j]为前i个光盘写入1-j首歌的最大数量, 那么状态转移式子就可以写为f... 阅读全文
posted @ 2016-01-03 20:32 xing-xing 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 给你一颗数的中序和先序遍历求出后序遍历, 直接递归求解, 代码如下: /* ID: m1500293 LANG: C++ PROG: heritage*/#include #include #include using namespace std;char mid[50], ... 阅读全文
posted @ 2016-01-03 19:41 xing-xing 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 很好地一道博弈论基础题, 题目意思是给你一个序列, 两个玩家, 没个玩家可以从序列的开头或者末尾取一个数,问两个玩家都采取最优策略第一个玩家得分最多是多少?这个问题可以用动态规划解决,我们定义sum[i][j]为序列i-j的和, dp[i][j]为当前玩家采取最优策略的得分最大值那么dp[i][... 阅读全文
posted @ 2016-01-03 17:12 xing-xing 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 这道题的意思是地图上有一些骑士和一个国王, 骑士和国王要在一点会和,你可以选择一个骑士和国王在一点会和然后骑士会带着国王继续走, 问他们汇合的最少步数和是多少?考虑一个骑士当没有国王的时候可以很容易的求出他到每个点的最短路径a, 现在他要带着国王, 那么我们可以计算出他带着国王到某一点的最短路径... 阅读全文
posted @ 2016-01-03 15:48 xing-xing 阅读(389) 评论(0) 推荐(0) 编辑