1122. Hamiltonian Cycle (25)

来源:互联网 发布:图像在线批处理软件 编辑:程序博客网 时间:2024/05/16 20:27
#include<iostream>#include<vector>#include<string>using namespace std;int arc[205][205] = {};int main(){    int N, M;    string str;    vector<bool> visited;    cin >> N >> M;    vector<int> te;    while (M--)    {        int a, b;        cin >> a >> b;        arc[a][b] = arc[b][a] = 1;    }    cin >> M;    while (M--)    {        visited.assign(N + 1, false);        int n;        int flag = 0;        cin >> n;        if (n != N + 1)        {            cout << "NO" << endl;            getline(cin, str);            continue;        }        else        {            int tem,past,first;            while (n--)            {                cin >> tem;                if (n == N) first = tem;                if (!(visited[tem] == false || (visited[tem] == true && n == 0 && tem == first)))                {                    flag = 1;                    getline(cin, str);                    break;                }                else                    visited[tem] = true;                if (n < N) if (arc[past][tem] == 0)                {                    flag = 1;                    getline(cin, str);                    break;                }                past = tem;            }        }        if(flag==0)     cout << "YES" << endl;        else    cout << "NO" << endl;    }}
0 0
原创粉丝点击