uval 6425 Intercity

编程入门 行业动态 更新时间:2024-10-17 15:28:41

<a href=https://www.elefans.com/category/jswz/34/376668.html style=uval 6425 Intercity"/>

uval 6425 Intercity

题意是说 我们有n(n<500000)个城市 原来是一个完全图,每一条边权为b,然后给你k条边 将边权替换为a

最后求1到n之间的最短路

比赛的时候想的1 n之间必然有边 所以不可能既走a边又走b边 所以将图分为a边和b边跑最短路

可有觉得复杂度的问题没有写

然而赛后才知道将完全图按邻接矩阵存 存完跑最短路也可以A

。。。


#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;
struct Node{int n,v;
};
struct Node1{int num,next;
}edge[1000101];int mark[500100],head[500100],cnt,mark1[500100];void add(int x,int y){edge[cnt].num=y;edge[cnt].next=head[x];head[x]=cnt++;edge[cnt].num=x;edge[cnt].next=head[y];head[y]=cnt++;
}
int n;
long long dfs(int x,int d,int l){if(d==l+1) if(x==n) return 1;mark[x]=1;long long ret=0;for(int i=head[x];i!=-1;i=edge[i].next){int v=edge[i].num;if(!mark[v]) ret+=dfs(v,d+1,l);}mark[x]=0;return ret;
}queue<Node> Q;
int main(){int k,a,b,x,y;while(~scanf("%d%d%d%d",&n,&k,&a,&b)){cnt=0;memset(head,-1,sizeof(head));int flag=0;for(int i=0;i<k;i++){scanf("%d%d",&x,&y);if((x==1&&y==n)||(x==n&&y==1)) flag=1;add(x,y);}int ans=b;if(flag) ans=a;
//		queue<Node> Q;while(!Q.empty()) Q.pop();if(flag==0){Node p;p.n=1;p.v=1;Q.push(p);memset(mark,0,sizeof(mark));mark[1]=1;while(!Q.empty()){p=Q.front();Q.pop();if(p.v*a>=ans) break;for(int i=head[p.n];i!=-1;i=edge[i].next){int v=edge[i].num;if(!mark[v]){Node tmp;tmp.n=v;tmp.v=p.v+1;Q.push(tmp);mark[v]=tmp.v;}}if(mark[n]) {ans=min(ans,mark[n]*a-a);break;}}}else{memset(mark,0,sizeof(mark));memset(mark1,0,sizeof(mark));Node p;p.n=1;p.v=1;Q.push(p);mark[1]=1;while(!Q.empty()){p=Q.front();Q.pop();int q=p.n;if(p.v*b>=ans)  break;for(int i=head[q];i!=-1;i=edge[i].next){int v=edge[i].num;mark1[v]=q;}Node tmp;tmp.v=p.v+1;for(int i=1;i<=n;i++)if(!mark[i]&&mark1[i]!=q){tmp.n=i;Q.push(tmp);mark[i]=tmp.v;}if(mark[n]) {ans=min(ans,mark[n]*b-b);break;}}}cout << ans << endl;}
}


更多推荐

uval 6425 Intercity

本文发布于:2024-02-11 19:33:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1682956.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:uval   Intercity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!