2013年8月16日

拓扑排序模板

摘要: 1 # include 2 # include 3 # define MAX 1000 4 int n,m,indegree[MAX]; 5 int G[MAX][MAX],q[MAX]; 6 void toposort() 7 { 8 int i,j,k; 9 for(i=0;i<n;) 10 { 11 for(j=1;j<=n;... 阅读全文

posted @ 2013-08-16 16:48 随风浪子的博客 阅读(144) 评论(0) 推荐(0) 编辑

POJ_1258_Agri-Net(最小生成树 Prim)

摘要: 还是注意初始化和数组的大小。跟前几题没什么区别。 1 # include 2 # include 3 # define inf 100010 4 int map[120][120]; 5 int m; 6 int Prim() 7 { 8 int low[120]; 9 int visit[120]={0};10 int i,j,k=1;11 int s=1;12 int point;13 int min;14 int sum=0;15 for(i=1;i map[s][j])26 low[j]... 阅读全文

posted @ 2013-08-16 15:46 随风浪子的博客 阅读(96) 评论(0) 推荐(0) 编辑

POJ_2485_Highways(Prim算法 最小生成树)

摘要: 这道题题意很简单,很明显的Prim,注意各部分的初始化 1 # include 2 # include 3 # define inf 65540 4 int map[510][510]; 5 int m; 6 int Prim() 7 { 8 int low[510]; 9 int visit[510]={0};10 int i,j,k=1;11 int s=1;12 int point;13 int max=0,min;14 memset(low,inf,sizeof(low));15 visit[s]=1;16 w... 阅读全文

posted @ 2013-08-16 15:35 随风浪子的博客 阅读(98) 评论(0) 推荐(0) 编辑

POJ_1789_Truck History (最小生成树Prim算法)

摘要: 题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。例如有如下4个编号:aaaaaaabaaaaaaabaaaaaaabaaaa显然的,第二,第三和第四编号分别从第一编号衍生出来的代价最小,因为第二,第三和第四编号分别与第一编号只有一个字母是不同的,相应的distance都是1,加起来是3。也就是最小代价为3。问题可以转化为最小代价生成树的问题。因为每两个结点之间都有路径 阅读全文

posted @ 2013-08-16 11:32 随风浪子的博客 阅读(148) 评论(0) 推荐(0) 编辑

导航