Hiho 国庆出游

来源:互联网 发布:vivo软件招聘 编辑:程序博客网 时间:2024/03/29 16:49
#include<stdio.h>#include<iostream>#include<string.h>#include<vector>#include<algorithm>using namespace std;struct tree{int p[101];int n;tree() :n(0){}};tree tr[101];void insert_tree(int a, int b){tr[a].p[tr[a].n++] = b;tr[b].p[tr[b].n++] = a;}bool through(int a, int b, bool bl[101][101], int aim){bl[a][b] = true;for (int i = 0; i < tr[a].n; ++i){int v = tr[a].p[i];if (b == v)return true;}for (int i = 0; i < tr[a].n; ++i){int v = tr[a].p[i];if (bl[v][b] == true){continue;}if (true == through(v, b, bl, aim)){if (aim == b)return true;continue;}}return false;}void detect(int a[], int n){bool bl[101][101] = { 0 };for (int i = 0; i < n-1; ++i){if (through(a[i], a[i+1], bl, a[n-1]) == false){cout << "NO" << endl;return;}}cout << "YES" << endl;}int main(){int n;cin >> n;for (int i = 0; i < n; ++i){int m;cin >> m;for (int j = 0; j < m-1; ++j){int a, b;cin >> a >> b;insert_tree(a, b);}int o;cin >> o;int* p = new int[o];for (int k = 0; k < o; ++k){cin >> p[k];}detect(p, o);delete []p;memset(&tr, 0, sizeof(tr));}return 0;}

0 0