题目地址:POJ2195
本人职业生涯费用流第一发!!快邀请赛了,决定还是多学点东西,起码碰到简单的网络流要A掉。以后最大流费用流最小割就一块刷。
以前费用流在我心目中一直是高大上,高不可攀的形象,可这两天才发现,原来费用流就是一个spfa再加点东西。。。一直以为费用流会比最大流的isap要麻烦好多,毕竟多了一个费用的元素。。。。我真的错了。。仔细研究了一下,只用一个spfa确实就可以解决了。...
分类:
其他好文 时间:
2014-07-03 18:15:51
阅读次数:
200
就是Fibonacci的矩阵算法,不过增加一点就是因为数字很大,所以需要取10000模,计算矩阵的时候取模就可以了。
本题数据不强,不过数值本来就限制整数,故此可以0ms秒了。
下面程序十分清晰了,因为分开了几个小函数了,适合初学者参考下。
#include
const int MOD = 10000;
void mulOneMatrix(int F[2][2])
{
int a =...
分类:
其他好文 时间:
2014-07-03 17:30:20
阅读次数:
157
类似于我上一篇解题报告。POJ 2253 Frogger。
也是最短路的变形,也可以当成生成树做。
2253 是求跳的路径中 权值最小的那一条。
而这道题1797 是求路径中 权值最大的那一条。
只需要把2253 中的dis[]初始赋INF,其他赋为0。然后dis[v]
d是某一边的大小。u出发点,v是到达点。
程序基本和 2253 一样。
#include
#include...
分类:
其他好文 时间:
2014-07-03 13:31:00
阅读次数:
193
/* 先将所有度数按从大到小排序,取最大的度数为N的节点,将其后面N个节点的度数减一,如果出现负数节点或者后面的节点数量不足N则可以判定无法构成图,重复这个过程,直到所有的度数都为零*/#include #include #include #include #include #include #i....
分类:
其他好文 时间:
2014-07-02 20:03:16
阅读次数:
218
非负权值的但源最短路之 dijkstra
dijkstra-------我认为这个算法的核心思想是:最短路径长度递增。
怎么理解呢?
假如有一条最短路径已经存在了,那么其中任意两点的路径都将是最短的,否则假设是不成立了。
算法实现过程:
已当前点 pos 更新,dis[ i ]的值(即 点 i 到源点的距离) 找出dis[ i ] 最小的 i 点...
分类:
其他好文 时间:
2014-07-02 17:00:49
阅读次数:
216
设m=C(n,k)=n!/((n-k)!*k!) 问题:求m的因数的个数
将m分解质因数得到
p1有a1个
p2有a2个
....
由于每个质因数可以取0~ai个(全部取0就是1,全部取ai就是m)最后的答案就是(a1+1)*(a2+1)*....*
注意不能直接将m分解,因为太大,所以要先分解n,n-k,k,根据他们再来加减。
#include
#include
#includ...
分类:
其他好文 时间:
2014-07-02 16:51:02
阅读次数:
289
Bellman 求最大环。
询问货币是否纯在套汇。
假如给你 1 元,通过兑换之后 超过 1 元就是存在套汇了。
用 map 映射比较方便。
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffffff
using namespace std;
s...
分类:
其他好文 时间:
2014-07-02 16:30:55
阅读次数:
164
本题是一般最近对点求解,稍微增加点限定:有两个集合点,要求不同集合中的点的最近对。
那么就增加一个判断,如果是同一个集合中的点,那么就返回最大值,其他和一般的最近对点解法一样。
注意:本题数据有重合点,那么就要防止分类的时候溢出。
Geeks上的最近对的程序是无法处理有重合点的情况的。
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-07-02 15:27:59
阅读次数:
402
hdu1501&&poj2192 Zipper(DFS)...
分类:
其他好文 时间:
2014-07-02 15:24:45
阅读次数:
226
题比较容易读懂,但是建模需动点脑子:
一个子串加常数形成的子串认为跟子串相同,求最长不重叠重复子串
题目中说
is disjoint from (i.e., non-overlapping with) at least one of its other appearance(s)
意味着不能重叠,举个例子
1, 2,3, 52, 53,54
1,2, 3和 52, 5...
分类:
其他好文 时间:
2014-07-02 15:15:01
阅读次数:
289