|
1122 Hamiltonian Cycle
题目
题意
代码解析
AC代码
参考
题目
https://pintia.cn/problem-sets/9 ... /994805351814119424
题意
给出图的相关信息,判断所给的序列是否为哈密顿路径(首尾相连,路径连通,除起始点外每个点只走一次)
代码解析
flag1用于判断首尾相连、除起始点外每个点只走一次
flag2用于判断是否连通
AC代码
#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,f[201][201];
int main()
{
scanf("%d %d",&n,&m);
while(m--)
{
scanf("%d %d",&x,&y);
f[x][y]=f[y][x]=1;
}
scanf("%d",&k);
while(k--)
{
int t,flag1=1,flag2=1;
scanf("%d",&t);
vector<int> v(t);
set<int> s;
for(int i=0;i<t;i++)
{
scanf("%d",&v);
s.insert(v);
}
if(s.size()!=n || t!=n+1 || v[0]!=v[t-1] ) flag1=0;
for(int i=0;i<t-1;i++)
{
if(f[v][v[i+1]]==0)
{
flag2=0;
break;
}
}
printf("%s\n",flag1&&flag2?"YES":"NO");
}
}
————————————————
武汉兰树网络科技有限公司
www.ls-idc.com
QQ:775260000
TG:@lsidc
|
|