2012年8月17日

poj1183(dp)

摘要: 水题dp问题动态转移方程:初始化:sum[1][1]=a[1][1];其余全为0sum[i][j]=max(sum[i-1][j-1]+a[i][j],sum[i-1][j]+a[i][j]),这个的意思是根据图来的,把图好好看下,很容易就写出来了第一次自己写的dp,纪念下…… 1 #include <iostream> 2 3 using namespace std; 4 int max(int a,int b) 5 { 6 return a>b?a:b; 7 } 8 int a[105][105]; 9 int sum[105][105];10 int main()11 阅读全文

posted @ 2012-08-17 22:58 矮人狙击手! 阅读(192) 评论(0) 推荐(0) 编辑

poj1157

摘要: 今天开始做dp,感觉dp比较考思维能力,关于那个动态转移方程,我一直很好奇人们是怎么推的呢??有没有什么方法呢???题目大意:每种花有一个编号,有几个花瓶,花瓶也是有编号的,每种花放在不同的花瓶的艺术价值不一样,要你把这些花按某种策略放在这些花瓶里,得到艺术价值总值最大,并且,编号小的花所在的花瓶的编号要比编号大的花所在花瓶的编号小。 ans[i][j]表示前i朵花放进前j个瓶子中的艺术值a[i][j]表示第i多花放在第j个瓶子里面的艺术值动态转移方程:ans[i][j]=max(ans[i][j-1],ans[i-1][j-1]+a[i][j] 1 #include <iostream 阅读全文

posted @ 2012-08-17 21:22 矮人狙击手! 阅读(816) 评论(0) 推荐(0) 编辑

最大流EK算法

摘要: 前面的的几篇关于网络流的我被坑了,原来我用的算法叫做EK下面总结下网络流的模板吧 1 #include <iostream> 2 #include <queue> 3 //#include <conio.h> 4 using namespace std; 5 #define arraysize 201 6 int maxData = 0x7fffffff; 7 int capacity[arraysize][arraysize]; //记录残留网络的容量 8 int flow[arraysize]; //标记从源点到当前节点实际还剩多少流量可用 9 int 阅读全文

posted @ 2012-08-17 19:33 矮人狙击手! 阅读(1921) 评论(0) 推荐(0) 编辑

spa算法

摘要: sap算法详解与模板 [转]链接:1. Maximum Flow: Augmenting Path Algorithms Comparison http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=maxFlowRevisited2. 刘汝佳《算法艺术与信息学竞赛》 P321 ( 注: 上面的代码似乎有误,retreat()部分未回退< 详见下文or 链接1. > )---------------------------------------------关键概念与性质:距离函数(distanc 阅读全文

posted @ 2012-08-17 18:52 矮人狙击手! 阅读(1722) 评论(0) 推荐(0) 编辑

poj1459(网络流)

摘要: 这道题跟我前面写的那两道网络流的题差不多,刚开始被题的描述吓到了,后来发现稍微变动下,原来的代码还可以继续用是这样的,原来的问题都是单源单汇问题,这题是多源多汇,关键在于把多源多汇问题转化为单源单汇,只要构造一个超级源点和一个超级汇点就ok了,把超级源点和各个源点之间加一条边,把各个汇点和超级汇点之间加一条边,这样就ok了,其实很简单关于最大流的问题我只会这一种方法,其他还有spa,ek ,以及spa算法的优化问题,这些最好都学习下 1 #include <cstdio> 2 #include <cstring> 3 #define Max 0x7f7f7f7f 4 i 阅读全文

posted @ 2012-08-17 17:13 矮人狙击手! 阅读(422) 评论(0) 推荐(0) 编辑

hdu3549(网络流)买一送一poj1273

摘要: 这道题跟poj1273是一模一样的,只略微改变了几个地方,就ok了,更正下,上面的算法不叫Ford_Fulkerson ,而是EK 1 #include <cstdio> 2 #include <cstring> 3 #define Max 0x7f7f7f7f 4 int n,m; 5 int path[100][100]; 6 int visited[100]; 7 int que[10000]; 8 int pre[100]; 9 int flow[100];10 int min(int a ,int b)11 {12 return a>b?b:a;13 } 阅读全文

posted @ 2012-08-17 15:34 矮人狙击手! 阅读(185) 评论(0) 推荐(0) 编辑

poj1273(网络流入门)

摘要: 今天首次接触到网络流,看了半天有些地方还是不太理解,关于算法本身的理解可能还有点问题,所以在实现上还有点困难 1 #include <cstdio> 2 #include <cstring> 3 #define Max 0x7f7f7f7f 4 int n,m; 5 int path[205][205]; 6 int visited[205]; 7 int que[205]; 8 int pre[205]; 9 int flow[205];10 int min(int a ,int b)11 {12 return a>b?b:a;13 }14 int BFS()/ 阅读全文

posted @ 2012-08-17 15:05 矮人狙击手! 阅读(793) 评论(0) 推荐(1) 编辑

导航