UVa 1599 Ideal Path[待AC]
来源:互联网 发布:怎么使网络稳定 编辑:程序博客网 时间:2024/04/29 11:18
dix[]保存到终点的最短权值,d[]保存到终点的最短边长
结构体保存边和权值,二维数组太大用不了;
一直Runtime Error.....
#include<iostream>#include<cstring>#include<set>#include<vector>#include<cstdio>#include<queue>#include<cctype>using namespace std;const int INF=(1<<30);const int maxn=100005;int d[maxn],n,dix[maxn],ans[maxn],k;struct Line{int u,v,weight;Line(int u=0,int v=0,int weight=0) :u(u),v(v),weight(weight) {}}G[maxn*2];void print(int* A,int n){for(int i=0;i<n;i++){if(i) putchar(' ');printf("%d",A[i]);}printf("\n");}void bfs(){queue<int> q;q.push(n);d[n]=0;for(int i=1;i<n;i++)d[i]=INF;dix[n]=0;for(int i=1;i<n;i++)dix[i]=INF;int vis[maxn]={0};vis[n]=1;while(!q.empty()){int u=q.front();q.pop();for(int i=0;i<k;i++){int v=G[i].u,nu=G[i].v;if(nu==u&&!vis[v]){if(d[v]>1+d[u])d[v]=d[u]+1;if(dix[v]>dix[u]+G[i].weight)dix[v]=dix[u]+G[i].weight;vis[v]=1;q.push(v);}}}}int ans_bfs(){int u=1;int p=0;ans[p++]=1;while(u!=n){int mv=INF,mw=INF;for(int v=1;v<=n;v++){if(d[u]-d[v]==1&&mw>dix[v]){mv=v;mw=dix[v];}}u=mv;ans[p++]=mv;}return p-1;}int main(){while(scanf("%d%d",&n,&k)!=EOF){memset(G,0,sizeof(G));for(int i=0;i<k;i++){int x,y,m;scanf("%d%d%d",&x,&y,&m);G[i].u=x;G[i].v=y;G[i].weight=m;}bfs();k=ans_bfs();printf("%d\n",k);print(ans,k);}return 0;}
0 0
- UVa 1599 Ideal Path[待AC]
- uva 1599 - Ideal Path
- UVa 1599 Ideal Path
- Uva - 1599 - Ideal Path
- UVa 1599 Ideal Path
- UVa 1599 Ideal Path
- UVA 1599 Ideal Path
- uva UVA - 1599 Ideal Path
- UVA 1599(p173)----Ideal Path
- UVa 1599 - Ideal Path <两次BFS>
- UVa 1599 - Ideal Path(BFS)
- 理想路径(Ideal Path,UVa 1599)
- UVA 1599 Ideal Path (理想路径)
- ACM篇:UVa 1599 -- Ideal Path
- uva 1599 Ideal Path (两次bfs)
- Ideal Path UVA
- Ideal Path UVA
- Ideal Path UVA
- 鸟哥的Linux私房菜-Read_02
- 二维码的生成与扫描
- hiho#1037 : 数字三角形 (动态规划)
- AsyncTask
- 强大的异或运算
- UVa 1599 Ideal Path[待AC]
- 做到这四点,你才是一个真正成熟的创业者
- LeetCode 42. Trapping Rain Water
- 第8章:重新组织数据---Self Encapsulate Field(自封装字段)
- poj 1426 Find The Multiple dfs
- 一起talk C栗子吧(第一百四十三回:C语言实例--文件操作:基于文件指针三)
- AndroidStudio2.0引用开源框架的步骤
- 极大似然估计的朴素理解
- mysql查询缓存