1122. Hamiltonian Cycle (25)
#include <iostream>
#include <string.h>using namespace std;int path[210][210];int main()
{int n, m;scanf("%d%d", &n, &m);int i, a, b;for(i = 1; i <= m; i++){scanf("%d%d", &a, &b);path[a][b] = 1;path[b][a] = 1;}int k;scanf("%d", &k);int num[210], vis[210], p, j, flag;for(i = 1; i <= k; i++){scanf("%d", &p);for(j = 1; j <= p; j++){scanf("%d", &num[j]);}flag = 1;if(p != n + 1 || num[1] != num[p]){flag = 0;}else{memset(vis, 0, sizeof(vis));for(j = 2; j <= p; j++){a = num[j - 1];b = num[j];if(path[a][b] == 0){flag = 0;break;}vis[b] = 1;}if(flag == 1){for(j = 1; j <= n; j++){if(vis[j] == 0){flag = 0;break;}}}}if(flag == 1){printf("YES\n");}else{printf("NO\n");}}system("pause");return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/975562.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!