POJ-3159-Candies
2013-07-31 18:32
323 查看
这个题要求求出最大的差别值,其实就是求1到n的最短路径,然后用Spfa的时候需要用栈存~
代码:
代码:
#include<cstdio> #include<cstring> #include<iostream> #include<stack> using namespace std; const int maxn=150100; const int maxm=30100; int e,n,m,head[maxm],nxt[maxn],pnt[maxn],cost[maxn],dist[maxm]; bool vis[maxm]; stack<int> s; void AddEdge(int u,int v,int c) { pnt[e]=v;nxt[e]=head[u];cost[e]=c;head[u]=e++; } int Spfa(int st) { memset(dist,0x7f,sizeof(dist)); memset(vis,0,sizeof(vis)); dist[st]=0; s.push(st); while(!s.empty()) { int u=s.top(); vis[u]=0; s.pop(); for(int i=head[u];i!=-1;i=nxt[i]) { int v=pnt[i]; if(dist[v]>dist[u]+cost[i]) { dist[v]=dist[u]+cost[i]; if(!vis[v]) { vis[v]=1; s.push(v); } } } } return dist ; } int main() { while(scanf("%d%d",&n,&m)!=EOF) { memset(head,-1,sizeof(head)); e=0; for(int i=0;i<m;i++) { int u,v,c; scanf("%d%d%d",&u,&v,&c); AddEdge(u,v,c); } printf("%d\n",Spfa(1)); } return 0; }
相关文章推荐
- poj 3159 candies (差分约束 spfa+stack)
- poj 3159 Candies(差分约束原理 最短路)
- poj 3159 -- Candies ( spfa + 栈 )
- POJ 3159 Candies (栈优化spfa)
- poj3159——Candies
- POJ 3159 Candies
- poj 3159 Candies
- POJ 3159 Candies 解题报告(Dijkstra & SPFA) 及 双向Dijkstra性能测试
- (简单) POJ 3159 Candies,Dijkstra+差分约束。
- POJ 3159 Candies(差分规划+SPFA)
- poj 3159 Candies
- poj-3159 Candies(差分约束问题)
- POJ 3159 Candies (差分约束 Dijkstra+优先队列 SPFA+栈)
- POJ-3159 Candies(差分约束)
- poj 3159 Candies------spfa算法
- POJ 3159 Candies
- poj 3159 Candies (spfa+stack)
- POJ 3159 Candies 差分约束
- POJ 3159 Candies
- POJ 3159 Candies 差分约束系统(这题卡SPFA的队列的双端队列)