题目链接:http://poj.org/problem?id=3422
题意:有一个n*n的矩阵,格子中的元素是费用,KaKa从左上角开始出发要到达右下角,但是他只能向下走或者向右走,且走过的格子赋值为0,可以走K次,问K次后KaKa能获得的最大费用是多少?
思路:首先解释一下为什么要拆点?
因为要获得最大费用,所以假设当前步选择先下走,最终得到的结果可能不是最大值,但...
分类:
其他好文 时间:
2014-08-21 21:19:35
阅读次数:
254
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2686
和POJ3422一样
删掉K把汇点与源点的容量改为2(因为有两种方向的选择)即可
#include
#include
#include
#include
#include
#include
const int maxn = 20000;
const int maxm = 800...
分类:
其他好文 时间:
2014-08-21 21:18:04
阅读次数:
239
对于每个点拆点成为两个点a,b,连接a到b的上界为1,下界为1的边,保证用过一次且仅一次。然后若点u可到达点v,则连接即可。建成了一个上下界网络,将下界拆出去,求最大费用最大流就好。#include #include #include using namespace std;const int N=...
分类:
其他好文 时间:
2014-08-13 22:13:07
阅读次数:
344
Matrix sum
Time Limit: 8000/4000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others)
SubmitStatisticNext
Problem
Problem Description
sweet和zero在玩矩阵游戏,sweet画了一个N * M的矩阵,矩阵的每个格子有一个整数...
分类:
其他好文 时间:
2014-08-03 23:29:16
阅读次数:
318
求最大费用可以将边权取负以转化成求最小费用。然而此时依然不对,因为会优先寻找最大流,但是答案并不一定出现在满流的时候。所以要加一些边(下图中的红边)使其在答案出现时满流。设所有边的流量为1,花费如下图所示。显然最大花费是1001,而没有红边的情况下会得到3。
#include
#include
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-23 00:01:03
阅读次数:
289
MatrixTime Limit: 2000/1000 MS (Java/Others)Memory
Limit: 32768/32768 K (Java/Others)Total Submission(s): 1394Accepted
Submission(s): 758Problem Descr...
分类:
其他好文 时间:
2014-05-16 05:32:21
阅读次数:
332