HDU 4522 湫湫系列故事——过年回家(单源最短路径)
来源:互联网 发布:centos iso系统 编辑:程序博客网 时间:2024/06/10 00:05
又是建两个图的djkstra算法水之。
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;#define inf 99999999const int maxn =200+5;int g[maxn][maxn][2];bool vis[maxn];int dist[maxn],n,start,end;char s[maxn*50];int djkstra(int u){ for(int i=1; i<=n; i++) dist[i]=inf; memset(vis,0,sizeof(vis)); vis[start]=1; for(int i=1; i<=n; i++) dist[i]=g[start][i][u]; for(int t=1; t<n; t++) { int mindis=inf,idx=-1; for(int i=1; i<=n; i++) if(!vis[i]&&mindis>dist[i]) mindis=dist[i],idx=i; if(idx==end) return dist[end]; if(idx==-1) return -1; vis[idx]=1; for(int i=1; i<=n; i++) if(!vis[i]&&dist[i]>g[idx][i][u]+mindis) dist[i]=g[idx][i][u]+mindis; } return -1;}int main(){ int T,t; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&t); for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) for(int k=0; k<=1; k++) g[i][j][k]=inf; while(t--) { int k; scanf("%s%d",s,&k); int ans=0,res=0,L=strlen(s); if(k==1) { for(int i=0; i<L; i++) { while(s[i]!='+'&&i<L) res=res*10+s[i]-'0',i++; g[ans][res][0]=1; g[ans][res][1]=1; ans=res; res=0; } } else { for(int i=0; i<L; i++) { while(s[i]!='+'&&i<L) res=res*10+s[i]-'0',i++; g[ans][res][0]=1; ans=res; res=0; } } } int d1,d2; scanf("%d%d%d%d",&d1,&d2,&start,&end); int w=djkstra(0),v=djkstra(1); if(w==-1&&v==-1) printf("-1\n"); else if(v==-1) printf("%d\n",w*d1); else printf("%d\n",min(v*d2,w*d1)); } return 0;}
- HDU 4522 湫湫系列故事——过年回家(单源最短路径)
- HDU(4522) 湫湫系列故事——过年回家
- hdu 4522湫湫系列故事——过年回家(最短路)
- 最短路 hdu-4522 湫湫系列故事——过年回家
- 湫湫系列故事——过年回家
- hdu 4552 湫湫系列故事——过年回家 腾讯马拉松~~~~
- HDU4522湫湫系列故事——过年回家(2013腾讯编程初赛3)(AC)
- HDU 4514 湫湫系列故事——设计风景线
- HDU 4503 湫湫系列故事——植树节
- hdu 4514 湫湫系列故事——设计风景线
- Hdu 4503 湫湫系列故事——植树节
- hdu 4514 湫湫系列故事——设计风景线
- HDU 4503 湫湫系列故事——植树节
- hdu 4544 湫湫系列故事——消灭兔子
- HDU-4544-湫湫系列故事——消灭兔子
- hdu 4503 湫湫系列故事——植树节
- HDU 湫湫系列故事——设计风景线
- HDU-4544湫湫系列故事——消灭兔子
- 让开发者高效编程的10个新框架
- 存储过程访问远程数据库
- 测试环境中安装sharepoint server 2010过程中出现的一些问题及解决过程
- Linux下gcc简介和常用命令
- 二十一、Intent附加数据的两种写法
- HDU 4522 湫湫系列故事——过年回家(单源最短路径)
- 网站案例使用 Sails.js 构建和定制企业级的 Node.js 应用
- Frankenstein——9
- xcode快捷键
- Socket模型详解
- C/C++ 笔试、面试题目大汇总
- FORK()函数的理解
- sqlserver中日期函数
- Python yield 使用浅析