aihk 发表于 2021-9-3 17:15:17

PAT——1122 Hamiltonian Cycle 甲级

1122 Hamiltonian Cycle
题目
题意
代码解析
AC代码
参考
题目
https://pintia.cn/problem-sets/994805342720868352/problems/994805351814119424

题意
给出图的相关信息,判断所给的序列是否为哈密顿路径(首尾相连,路径连通,除起始点外每个点只走一次)

代码解析
flag1用于判断首尾相连、除起始点外每个点只走一次

flag2用于判断是否连通

AC代码
#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,f;
int main()
{
        scanf("%d %d",&n,&m);
        while(m--)
        {
                scanf("%d %d",&x,&y);
                f=f=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!=v ) flag1=0;
                for(int i=0;i<t-1;i++)
                {
                        if(f]]==0)
                        {
                                flag2=0;
                                break;
                        }
                }
                printf("%s\n",flag1&&flag2?"YES":"NO");
        }
}
————————————————
武汉兰树网络科技有限公司
www.ls-idc.com
QQ:775260000
TG:@lsidc
页: [1]
查看完整版本: PAT——1122 Hamiltonian Cycle 甲级