1734Sightseeing trip

题目大意:

一家旅游公司要开发一条新的旅游路线,要这条路线尽可能的短,但是又不能只含有两个城市并且途中不能回到之前去过的城市,旅游结束的时候要回到最开始的城市,要求求出整个旅游路线经过的城市。

解题思路:

flyod求最小环。pre[i][j]数组表示i到j的j的前面一个顶点,记录路径即可,具体的看代码吧,我做的是是inf直接定义为int最大的时候溢出了,结果找bug了老半天。。。。

#include
#define _min(a,b) adis[i][k]+dis[k][j]){
                dis[i][j]=dis[i][k]+dis[k][j];
                pre[i][j]=pre[k][j];
            }
        }
    }
    if(mincircle==inf)
        puts("No solution.");
    else{
        for(i=0;i


你可能感兴趣的:(图论)