POJ1734
来源:互联网 发布:sql在哪停止 编辑:程序博客网 时间:2024/06/05 16:44
Problem : Sightseeing trip
Description : 有一个旅行机构要设计一条旅行路线,这条路线要从一个地点出发最后回到这个点,而且路径长度要最短。
Solution : 裸最小环。参考最小环算法。
Code(C++) :
#include <stdio.h>#include <string.h>#define MIN(a,b) ((a)>(b)? (b):(a))const int SIZE=100+5;const int INF=1e7;int N,M;int map[SIZE][SIZE];int dp[SIZE][SIZE];int pre[SIZE][SIZE];int ans;int path[SIZE];int top;void floyd(){ int i,j,k; for(k=1;k<=N;k++){ int tmp; for(i=1;i<k;i++) for(j=i+1;j<k;j++){ tmp=dp[i][j]+map[i][k]+map[k][j]; if(tmp<ans){ ans=tmp; top=0; int p=j; while(p!=i) path[top++]=p,p=pre[i][p]; path[top++]=i; path[top++]=k; } } for(i=1;i<=N;i++) for(j=1;j<=N;j++) if(dp[i][j]>dp[i][k]+dp[k][j]) dp[i][j]=dp[i][k]+dp[k][j], pre[i][j]=pre[k][j]; }}int main(){ //freopen("in.data","r",stdin); int i,j; while(~scanf("%d%d",&N,&M)){ int x,y,c; for(i=0;i<SIZE;i++) for(j=0;j<SIZE;j++) dp[i][j]=map[i][j]=INF,pre[i][j]=i; for(i=0;i<M;i++) scanf("%d%d%d",&x,&y,&c), map[x][y]=map[y][x]=dp[x][y]=dp[y][x]=MIN(map[x][y],c); ans=INF; top=0; floyd(); if(ans>=INF) puts("No solution."); else for(i=0;i<top;i++) printf("%d%c",path[i],i==top-1? '\n':' '); } return 0;}
0 0
- poj1734
- poj1734
- poj1734
- POJ1734
- Poj1734题解
- poj1734 - Sightseeing trip
- poj1734 最小环
- poj1734 Musical Theme
- POJ1734 Sightseeing Trip
- poj1734(floyd算法)
- poj1734 Sightseeing trip
- [poj1734]Sightseeing trip(Floyd)
- POJ1734 Sightseeing trip(最小环)
- POJ1734(floyd求最小环的路径)
- POJ1734 Sightseeing trip【Floyd】【最小环】
- POJ1734 Sightseeing trip 【Floyd】+【最小环】+【路径记录】
- poj1734 Sightseeing trip(Floyd求最小环)
- 后缀自动机1003 HDU 4416
- ueditor使用_1_结合require
- 获取SD卡剩余空间
- spring配置文件详解--真的蛮详细
- Odoo调用其他数据模型中定义的Selection数据列表 获取Value值
- POJ1734
- RESTful风格的springMVC
- android 设置状态栏隐藏
- 反射
- Virtual reality
- HDU5781(2016多校第五场)——ATM Mechine(动态规划)
- Spring review--AOP原理
- form的onsubmit验证-另存
- MVC+Easyui+EF datagrid显示所有数据(1)