travelling

1150 Travelling Salesman Problem

旧巷老猫 提交于 2020-02-06 00:44:08
题目 题意: 给出一张图,k条路径,判断这些路径是这个图的旅行商环路、简单旅行商环路还是非旅行商环路 #include<iostream> #include<set> #include<cstring> using namespace std; int s[203][203]; int query[203]; int n,m; int minlen=1e7,minindex=1e7; void checked(int c) { int t,flag=0; cin>>t; set<int> num; for(int j=0; j<t; ++j) { cin>>query[j]; num.insert(query[j]); } int sum=0; for(int i=0; i<t-1; ++i) { sum+=s[query[i]][query[i+1]]; if(!s[query[i]][query[i+1]]) { flag=1; break; } } if(flag==1)//query中存在两点之间不可达的情况 printf("Path %d: NA (Not a TS cycle)\n",c); else if(query[0]!=query[t-1]||num.size()!=n)//query并没有走完所有城市或者开始和结尾城市不一样 printf("Path %d: