PAT 1021. Deepest Root (25)
来源:互联网 发布:淘宝减肥药排行榜十强 编辑:程序博客网 时间:2024/05/16 15:38
//1021. Deepest Root (25)//第二个case是测试N =0 的情况#include <iostream>#include <algorithm>#include <queue>#include <vector>using namespace std;vector<int> Road[10005];int VisitedNum = 0;bool visit[10005] = {false};int N;queue<int> q;int currlen = 0;int maxlen = 0;vector<int> result;void dfs(int curr){int i;if (currlen >= maxlen){if (currlen == maxlen){if (find(result.begin(), result.end(), curr)==result.end()){result.push_back(curr);}}else{maxlen = currlen;result.pop_back();if (find(result.begin(), result.end(), curr)==result.end()){result.push_back(curr);}}}for (i = 1;i<=N;i++){if (i!=curr && /*Road[i][curr] == true*/ find(Road[curr].begin(), Road[curr].end(), i)!=Road[curr].end() && visit[i] == false){visit[curr] = true;VisitedNum++;currlen++;dfs(i);visit[curr] = false;VisitedNum--;currlen--;}}}int main(){scanf("%d", &N);int i;int n1, n2;for (i = 1;i<N;i++){scanf("%d %d", &n1, &n2);Road[n1].push_back(n2);Road[n2].push_back(n1);}if (N == 1){printf("1\n");return 0;}//BFSint componentsnum = 0;int j;for ( j = 1;j<=N;j++){if (visit[j] == true){continue;}q.push(j);while(!q.empty()){int topnum = q.front();q.pop();for( i = 0 ;i<Road[topnum].size();i++){if (visit[Road[topnum][i]] == false){q.push(Road[topnum][i]);visit[Road[topnum][i]] = true;}}}if (q.empty()){componentsnum++;}}if (componentsnum != 1){printf("Error: %d components", componentsnum);return 0;}fill(visit, visit+N+1, false);VisitedNum = 1;visit[1]=true;dfs(1); if (result.size()> 1){sort(result.begin(), result.end());for (i = 0;i<result.size();i++){printf("%d\n", result[i]);}return 0;}fill(visit, visit+N+1, false);VisitedNum = 1;visit[result[0]] = true;currlen = 0;//maxlen = 0; dfs(result[0]);sort(result.begin(), result.end());for (i = 0;i<result.size();i++){printf("%d\n", result[i]);}return 0;}
0 0
- 1021. Deepest Root (25)-PAT
- PAT 1021. Deepest Root (25)
- PAT 1021. Deepest Root (25)
- PAT 1021. Deepest Root (25)
- PAT 1021. Deepest Root (25)
- PAT 1021. Deepest Root (25)
- 【PAT】1021. Deepest Root (25)
- pat 1021. Deepest Root (25)
- 【PAT】1021. Deepest Root (25)
- pat 1021. Deepest Root (25)
- PAT 1021. Deepest Root (25)
- PAT 1021. Deepest Root
- PAT 1021. Deepest Root
- pat 1021. Deepest Root
- PAT 1021. Deepest Root
- PAT 1021. Deepest Root
- 【PAT】1021. Deepest Root
- PAT 1021. Deepest Root
- 返回局部变量的问题
- pat 1057. Stack (30)
- 黑马程序员---OC--面向对象三大特性
- Java设计模式——适配器模式(Adapter)
- MySQL语句总结
- PAT 1021. Deepest Root (25)
- sql oracle循环插入数据
- MySQL视图模型及关联模型理解
- html5,audio音乐播放器
- Spark SQL and DataFrame for Spark 1.3
- HSRP(Hot standby router protocol)理解
- 数据库常见基础面试题
- MakeFile用法
- 计算机网络