hdu5521(spfa)
来源:互联网 发布:能装windows的平板 编辑:程序博客网 时间:2024/06/17 21:44
链接:点击打开链接
题意:有N个点,两个人,一个人住在1点,另一个人在n点,有M个点集,集合内的数表示任意两点的距离为w,现在1~N中找一点x,使得1到x和N到x的最大值最小,并输出所有可能的点
代码:
#include <queue>#include <vector>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int siz=200005;const long long INF=0x3f3f3f3f3f3f3f3fll;long long n,m;long long d1[siz],d2[siz],vis[siz];struct node{ long long to,val;};vector<node> G[siz];void spfa(long long S,long long d[]){ long long i,j,u,v,w; queue<long long> qu; for(i=1;i<=n;i++) vis[i]=0,d[i]=INF; d[S]=0,vis[S]=1; qu.push(S); while(qu.size()){ u=qu.front(); qu.pop(); vis[u]=0; for(i=0;i<G[u].size();i++){ v=G[u][i].to; w=G[u][i].val; if(d[v]>d[u]+w){ d[v]=d[u]+w; if(vis[v]==0){ vis[v]=1; qu.push(v); } } } }}int main(){ vector<long long> ans; long long t,i,j,w,u,v,tt,op,cas; scanf("%I64d",&t); for(cas=1;cas<=t;cas++){ scanf("%I64d%I64d",&n,&m); tt=n; for(i=1;i<=n+m;i++) G[i].clear(); for(i=1;i<=m;i++){ scanf("%I64d%I64d",&w,&u); n++; while(u--){ //将每个集合中的点单独连到一个点x上, scanf("%I64d",&v); //去的边长w,回来的边是0,就跟路由器一样.... G[v].push_back((node){n,w}); G[n].push_back((node){v,0}); } } spfa(1,d1); spfa(tt,d2); //跑两边spfa,取最小值 op=INF; for(i=1;i<=tt;i++) op=min(op,max(d1[i],d2[i])); ans.clear(); for(i=1;i<=tt;i++) if(max(d1[i],d2[i])==op) ans.push_back(i); if(op==INF) printf("Case #%I64d: Evil John\n",cas); else{ printf("Case #%I64d: %I64d\n",cas,op); for(i=0;i<ans.size();i++){ if(i!=0) printf(" "); printf("%d",ans[i]); } printf("\n"); } } return 0;}
阅读全文
0 0
- hdu5521(spfa)
- hdu5521
- hdu5521 spfa+超图转换+最短路+邻接表建图
- hdu5521 Meeting
- hdu5521 Meeting
- hdu5521 Meeting
- HDU5521 Meeting
- HDU5521(最短路)
- hdu5521 Meeting (最短路)
- hdu5521 Meeting最短路
- [hdu5521]最短路优化
- HDU5521最短路径
- HDU5521 Meeting【最短路】
- HDU5521 最短路,添加点
- hdu5521最短路(Dijkstra)
- hdu5521(集合的dijstra)
- HDU5521 Meeting (最短路)
- HDU5521(最短路+建边)
- 一种手游中实时战斗系统的设计思路
- Vue与axios整合时,访问Vue实例
- Android 状态选择器的使用
- Linux/Unix IO多路复用之select网络编程基本代码
- 利用Python/C语言解决分鱼问题
- hdu5521(spfa)
- JSP页面选择文件夹显示文件路径
- elasticsearch5.0启动出现的错误
- 关于程序员写文档(网络转载)
- T3非套打凭证间距调整
- Kubernetes1.7新特性:新增自动伸缩条件和参数
- javaFx 从登陆到界面跳转
- mac Xcode安装及使用Git代码管理工具
- JS-Number对象