USACO 3.2 Sweet Butter(SPFA)
2012-11-22 18:24
260 查看
和杭州赛区那个求最短路中的最长路很类似,悲剧的是模版一个地方给敲错了,很细小的错误,我检查了N遍,中间写了floyd,测试一下题意。。WA的都麻木了,这模版敲的很不熟啊。。。
/* ID: cuizhe LANG: C++ TASK: butter */ #include <cstdio> #include <cstring> #include <cmath> #include <queue> using namespace std; #define INF 0x3f3f3f3f int first[1001],cow[1001],t,p,d[1001],in[801]; int dis[801][801]; queue<int> que; struct node { int u,v,w,next; }edge[5001]; void CL() { t = 1; memset(first,-1,sizeof(first)); } void add(int u,int v,int w) { edge[t].u = u; edge[t].v = v; edge[t].w = w; edge[t].next = first[u]; first[u] = t; t ++; } void spfa(int str)//以后变量的统统都是这样写了。 { int i,v,u; for(i = 1;i <= p;i ++) { in[i] = 0; d[i] = INF; } que.push(str); in[str] = 1; d[str] = 0; while(!que.empty()) { u = que.front(); in[u] = 0; que.pop(); for(i = first[u];i != -1;i = edge[i].next) { v = edge[i].v; if(d[v] > d[u]+edge[i].w) { d[v] = d[u]+edge[i].w; if(!in[v]) { in[v] = i; que.push(v); } } } } for(i = 1;i <= p;i ++) { dis[str][i] = d[i]; dis[i][str] = d[i]; } } int main() { int i,j,n,c,ans,sum,sv,ev,w; freopen("butter.in","r",stdin); freopen("butter.out","w",stdout); scanf("%d%d%d",&n,&p,&c); CL(); for(i = 1;i <= p;i ++) { for(j = 1;j <= p;j ++) dis[i][j] = INF; dis[i][i] = 0; } for(i = 1;i <= n;i ++) { scanf("%d",&cow[i]); } for(i = 1;i <= c;i ++) { scanf("%d%d%d",&sv,&ev,&w); add(sv,ev,w); add(ev,sv,w); } for(i = 1;i <= n;i ++) { spfa(cow[i]); } ans = INF; for(i = 1;i <= p;i ++) { sum = 0; for(j = 1;j <= n;j ++) { if(dis[i][cow[j]] == INF) break; sum += dis[i][cow[j]]; } if(j == n+1) { if(ans > sum) ans = sum; } } printf("%d\n",ans); return 0; }
相关文章推荐
- USACO Section 3.2 Sweet Butter(SPFA)
- SSL-1693 USACO 3.2 Sweet Butter 香甜的黄油 (Bellman DIJ SPFA)
- USACO 3.2 Sweet Butter 香甜的黄油 (Bellman DIJ SPFA)
- USACO Section 3.2 Sweet Butter - 还是SPFA好使..
- Sweet Butter_usaco3.2_spfa
- [USACO3.2]香甜的黄油 Sweet Butter
- USACO 3.2 Sweet Butter
- USACO-Section3.2 Sweet Butter【Dijkstra算法】
- USACO 3.2 Sweet Butter (butter)
- [USACO3.2]Sweet Butter
- USACO-Section 3.2 Sweet Butter(最短路[Dijkstra])
- USACO Section 3.2: Sweet Butter
- USACO section 3.2 Sweet Butter(SPFA)
- USACO 3.2 Sweet Butter
- USACO section 3.2 Sweet Butter(SPFA)
- 【USACO 3.2】Sweet Butter(最短路)
- USACO Section 3.2 Sweet Butter (butter)
- usaco-3.2-kimbits-pass
- usaco-3.2-ratios-pass
- 【BZOJ】3392: [Usaco2005 Feb]Part Acquisition 交易(spfa)