1134 Vertex Cover(结点,所属边1,所属边2,。。。)

题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805346428633088  

方法一:

 邻接表存储图,邻接矩阵标记边是否被访问,凉凉~~

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 const int maxn = 10000;
 6 int G[maxn][maxn];
 7 int main() {
 8     int n,m,u,v,k;
 9     scanf("%d%d",&n,&m);
10     vector<int> adj[n];
11     for(int i = 0; i < m; ++i) {
12         scanf("%d%d",&u,&v);
13         adj[u].push_back(v);
14         adj[v].push_back(u);
15     }
16     scanf("%d",&k);
17     while(k--) {
18         int num,cnt = 0;
19         for(int i = 0; i < n; ++i)
20             for(int j = 0; j < n; ++j)
21                 G[i][j] = 0;
22         scanf("%d",&num);
23         for(int i = 0; i < num; ++i) {
24             scanf("%d",&u);
25             for(int j = 0; j < adj[u].size(); ++j) {
26                 v = adj[u][j];
27                 if(G[u][v] == 0) {
28                     G[u][v] = G[v][u] = 1;
29                     cnt++;
30                 }
31             }
32         }
33         if(cnt == m) printf("Yes\n");
34         else printf("No\n");
35     }
36     return 0;
37 }

 方法二:

 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 
 5 int main() {
 6     int n,m,u,v,k;
 7     cin>>n>>m;
 8     vector<int> index[n];//记录结点所在边的编号
 9     for(int i = 0; i < m; ++i) { //每一条边的编号
10         scanf("%d%d",&u,&v);
11         index[u].push_back(i);
12         index[v].push_back(i);
13     }
14     cin>>k;
15     while(k--) {
16         int num = 0,cnt = 0;
17         vector<int> hash(m,0);//标记边是否被访问
18         cin>>num;
19         for(int i = 0; i < num; ++i) {
20             cin>>u;
21             for(int j = 0; j < index[u].size(); ++j)
22                 if(hash[index[u][j]] == 0) {
23                     hash[index[u][j]] = 1;
24                     cnt++;
25                 }
26         }
27         if(cnt == m) printf("Yes\n");
28         else printf("No\n");
29     }
30     return 0;
31 }

 

posted @ 2020-03-16 16:51  tangq123  阅读(195)  评论(0)    收藏  举报