没有输出的错误代码1
过样例但是多处错误的代码2
以上两个后两个测试点错误是因为dist 和描述 之间忘记输出空格
前两个测试点参照浒鱼鱼代码改好了。但我始终看不出来区别在哪里
//
// Created by ZhangXiaoYu on 2020/7/16.
//
#include <iostream>
#include <vector>
#include <set>
#include <cstring>
using namespace std;
int g[210][210];//如果set中城市数量小于n的话,直接就是not
int main(){
int n,m,k;cin>>n>>m;//n是城市个数,m是边数,for(int i=0;i<m;i++){
int a,b,dist;cin>>a>>b>>dist;g[a][b]=g[b][a]=dist;}cin>>k;//k是路径数int c;int ans = 9999999;int tag=-1;for(int i=1;i<=k;i++){
set<int>s;vector<int >v;cin>>c;//路径有几个节点int node;int dis=0;
// cin>>node;int error_flag=0;
// int first_node =node;
// v.push_back(node);for(int j=0;j<c;j++){
cin>>node;v.push_back(node);s.insert(node);if(j!=0){
dis+=g[v[j-1]][v[j]];if(g[v[j-1]][v[j]]==0)error_flag = 1;}}int flag =0;printf("Path %d: ",i);if(error_flag){
//如果不连通printf("NA");}else cout<<dis; //说明连通if(s.size()!=n||v[0]!=v[v.size()-1] || error_flag){
//城市不够或者没有回到起点printf(" (Not a TS cycle)\n");flag=1;continue;}else if(v.size()>n+1)printf(" (TS cycle)\n");else printf(" (TS simple cycle)\n");if(ans>dis){
ans = dis;tag = i;}}printf("Shortest Dist(%d) = %d\n",tag,ans);
}