Skip to content

Commit b06ec7c

Browse files
committed
🔨 refactor: refactor code
1 parent 5af49a3 commit b06ec7c

File tree

1 file changed

+22
-34
lines changed

1 file changed

+22
-34
lines changed
Lines changed: 22 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,29 @@
1-
#include <cstdio>
1+
#include <iostream>
2+
#include <set>
23
#include <vector>
34
using namespace std;
4-
int n, kn;
5-
vector<int> v;
6-
vector<vector<int>> graph;
7-
int isConnected() {
8-
int pre = v[0];
9-
for (int i = 1; i < kn; i++) {
10-
if (graph[pre][v[i]] != 1) return 0;
11-
pre = v[i];
12-
}
13-
return 1;
14-
}
15-
int isHamilt() {
16-
if (v[0] != v[kn-1]) return 0;
17-
vector<int> times(kn, 0);
18-
for (int i = 0; i < kn; i++)
19-
times[v[i]]++;
20-
for (int i = 1; i < kn; i++)
21-
if ((i == v[0] && times[i] != 2) || (i != v[0] && times[i] != 1)) return 0;
22-
return 1;
23-
}
245
int main() {
25-
int m, k, a, b;
26-
scanf("%d %d", &n, &m);
27-
graph.resize(n+1, vector<int>(n+1, 0));
28-
for (int i = 0; i < m; i++) {
29-
scanf("%d %d", &a, &b);
30-
graph[a][b] = graph[b][a] = 1;
6+
int n, m, cnt, k, a[210][210] = {0};
7+
cin >> n >> m;
8+
for(int i = 0; i < m; i++) {
9+
int t1, t2;
10+
scanf("%d%d", &t1, &t2);
11+
a[t1][t2] = a[t2][t1] = 1;
3112
}
32-
scanf("%d", &k);
33-
for (int i = 0; i < k; i++) {
34-
scanf("%d", &kn);
35-
v.resize(kn);
36-
for (int j = 0; j < kn; j++)
37-
scanf("%d", &v[j]);
38-
printf("%s\n", (kn == n + 1 && isConnected() && isHamilt()) ? "YES" : "NO");
13+
cin >> cnt;
14+
while(cnt--) {
15+
cin >> k;
16+
vector<int> v(k);
17+
set<int> s;
18+
int flag1 = 1, flag2 = 1;
19+
for(int i = 0; i < k; i++) {
20+
scanf("%d", &v[i]);
21+
s.insert(v[i]);
22+
}
23+
if(s.size() != n || k - 1 != n || v[0] != v[k-1]) flag1 = 0;
24+
for(int i = 0; i < k - 1; i++)
25+
if(a[v[i]][v[i+1]] == 0) flag2 = 0;
26+
printf("%s",flag1 && flag2 ? "YES\n" : "NO\n");
3927
}
4028
return 0;
4129
}

0 commit comments

Comments
 (0)