小希的迷宫
Posted Vincent_Bryan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小希的迷宫相关的知识,希望对你有一定的参考价值。
题目大意:
详见题目。
问题分析:
题目其实就是判断给出的点集和边集能否构成一棵树,运用树的性质进行判断即可:edge(边数) = vertice(点数) - 1。需要注意的是当输入为:0 0时,结果应为"Yes"。
代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 int arr[100010]; 4 int main(int argc, char const *argv[]) 5 { 6 int a, b; 7 int edge = 0, vertice = 0; 8 memset(arr, 0, sizeof(arr)); 9 while(cin >> a >> b){ 10 if(a == -1 && b == -1)break; 11 else if(a == 0 && b == 0){ 12 if(edge == vertice - 1 || edge == 0 && vertice == 0) printf("Yes\n"); 13 else printf("No\n"); 14 memset(arr, 0, sizeof(arr)); 15 edge = vertice = 0; 16 } 17 else{ 18 if(!arr[a]){ 19 arr[a] = 1; 20 vertice++; 21 } 22 if(!arr[b]){ 23 arr[b] = 1; 24 vertice++; 25 } 26 edge++; 27 } 28 } 29 return 0; 30 }
以上是关于小希的迷宫的主要内容,如果未能解决你的问题,请参考以下文章