| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:有没有哪位大神愿意看一下这段代码哪里有问题啊?wa到吐……不胜感激In Reply To:有没有哪位大神愿意看一下这段代码哪里有问题啊?wa到吐……不胜感激 Posted by:littlenum at 2012-09-01 21:02:36 > #include<iostream>
> #include<stdio.h>
> #include<string.h>
> #include<queue>
> using namespace std;
> #define inf 10000000000000
> #define maxn 50005
> struct EDGE{
>
> int end;
> int weight;
> int next;
> }edge[maxn*2];
> int head[maxn*2];
> int price[maxn];
> long long dis[maxn];
> bool vis[maxn];
>
> int e,v;
>
>
> void spfa(){
> queue <int> q;
> memset(vis,0,sizeof(vis));
> for(int i=0 ; i<=e ; i++)
> dis[i]=inf;
> dis[1]=0;
> vis[1]=true;
> q.push(1);
> while(!q.empty()){
>
> int now=q.front();
> q.pop();
> vis[now]=true;
> for(int i=head[now] ; i ; i=edge[i].next)
> if(dis[edge[i].end] > dis[now] + edge[i].weight){
> dis[edge[i].end] = dis[now] + edge[i].weight;
> if(!vis[edge[i].end]){
> vis[edge[i].end]=true;
> q.push(edge[i].end);
> }
> }
> }
> }
>
> int main(){
> int test;
> scanf("%d",&test);
> while(test--){
>
> int a,b,w;
> scanf("%d%d",&e,&v);
> memset(price,0,sizeof(price));
> memset(head,0,sizeof(head));
> for(int i=1 ; i<=e ; i++)
> scanf("%d",&price[i]);
> int cnt=1;
> for(int i=0 ; i<v ; i++){
>
> scanf("%d%d%d",&a,&b,&w);
> edge[cnt].end=b;
> edge[cnt].weight=w;
> edge[cnt].next=head[a];
> head[a]=cnt++;
> edge[cnt].end=a;
> edge[cnt].weight=w;
> edge[cnt].next=head[b];
> head[b]=cnt++;
> }
> if(e==0||e==1) {
> printf("0\n");
> continue;
> }
> spfa();
> bool flag=true;
> long long res=0;
> for(int i=2 ; i<=e ; i++){
>
> if(dis[i]==inf){
>
> flag=false;
> break;
> }
> res += price[i]*dis[i];
> }
>
> if(flag)
> printf("%lld\n",res);
> else
> printf("No Answer\n");
>
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator