摘要: 额,还是一个路径问题,不过这次是判断是否存在负权回路,这个直接用bellman ford 算法做就行了,只要松弛次数超过n次,则证明存在负权回路这个在说benllman ford算法的时候解释的很详细了,不过现在不太敢用INT_MAX来表示最大的整数了,动不动就溢出了#include<iostream>#define MAXINT 9999999using namespace std;int n,m,w,dis[510];struct Edge{ int u,v,weight;}edge[5220];void relax(int u, int v, int weight){ if( 阅读全文
posted @ 2011-08-12 23:28 枕边梦 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 稍微修改了一下hdu1874的代码就直接过了不过 31ms 缺陷,一大缺陷FSPA版:#include<iostream>#include<string>#include<algorithm>#define MAXN 110using namespace std;int map[MAXN][MAXN]; //map[i,j]为初始输入的i到j的距离,未知的map[i,j]=INT_MAX;int dis[MAXN],Q[MAXN*100];char vst[MAXN];// 参数n表示结点数,s表示源点int SPFA(int n, int s){ // p 阅读全文
posted @ 2011-08-12 18:01 枕边梦 阅读(273) 评论(0) 推荐(0) 编辑
摘要: Dijkstra算法的模板题,嘻嘻,第一道最短路,模板题呀,本来幻想着1A 的,可惜呀,少了一个条件,一个很重要的条件,既然是最短路,有重边的话,当然是保存较短的一条边,结果我根本没注意到,直接覆盖了悲剧,……………………最短路径的四个算法,看了快一天了,终于有一点点的收获,多亏了大牛博客上的详解呀http://www.wutianqi.com/?p=1890 Dijkstra算法实现http://www.wutianqi.com/?p=1912 Bellman-Ford算法http://www.wutianqi.com/?p=2285 SPFA(Shortest Path Faster Al 阅读全文
posted @ 2011-08-12 17:21 枕边梦 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 比较简单的搜索,不过我的内存开得太大了,不知道怎么缩减一开始内存开得太小了,忘了可能有一步是X*2,所以总数值可能大于100000,所以RE了#include<iostream>#include<string>#include<queue>using namespace std;int n,k;int vis[200002];struct node{ int x,cnt; node(int _x=0,int _cnt=0):x(_x),cnt(_cnt){};}; queue<node> Q;void bfs(){ memset(vis,0,si 阅读全文
posted @ 2011-08-12 00:47 枕边梦 阅读(219) 评论(0) 推荐(0) 编辑