摘要: 这是一个用bellman()判断有无负权环的题目,需要先对图中的每一个元素进行操作,最后判断负环是否存在。要注意有向图的边权是负数。具体见源程序:(PS:本题也可以用spfa来做,就是通过队列中元素的进出掌握每个节点的情况)#include<stdio.h>typedef struct{int a,b,t;}node;node road[6000];int n,m,w,s,e,t,ep;int bellman(){int dist[502],i,j,temp; for(i=1;i<=n;i++)dist[i]=0;for(i=1;i<n;i++){temp=0;for( 阅读全文
posted @ 2011-04-06 21:46 海浪涛天 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目的大意是:有n种货币和m种转换方式,每种转换方式对应的汇率r和手续费c,假设原来的钱数是v,那么转换后的为(v-c)*r。现在给某种货币形式的钱数,问能否经过某些转换方式使得变回同种货币形式时钱数增加。用到的算法是bellman()的最大路的松弛法。需要注意:1.满足正环条件就要不停松弛,直到dist[s]>value;2.如果不能循环了就要return dist[s]>value;源程序:#include<stdio.h>#include<string.h>typedef struct{int u,v;double r,c;}node;node edg 阅读全文
posted @ 2011-04-06 19:05 海浪涛天 阅读(287) 评论(0) 推荐(0) 编辑