UVA 1267 - Network
来源:互联网 发布:网络综艺节目排行榜 编辑:程序博客网 时间:2024/06/04 18:38
要先把无根数转成有根数,然后不断的查找不符合的叶子,再更新就行了
#include <cstdio>#include <algorithm>#include <vector>#include <cstring>using namespace std;int n;vector<int> vvv[1005];vector<int> tree[1005];int father[1005];int visited[1005];int s,k;int maxd;int ccc;void gen_tree(int node,int fa,int d){ if(d>maxd) maxd=d; father[node]=fa; int len=vvv[node].size(); if(len==1 && d>k){ tree[d].push_back(node); } for(int i=0;i<len;i++){ if(father[vvv[node][i]]==0) gen_tree(vvv[node][i],node,d+1); }}void dfs(int node,int d){ if(d>k) return; if(vvv[node].size()==1){ visited[node]=1; } for(int i=0;i<vvv[node].size();i++){ int v=vvv[node][i]; dfs(v,d+1); }}void solve(){ for(int i=maxd;i>k;i--){ for(int j=0;j<tree[i].size();j++){ int v=tree[i][j]; if(visited[v]) continue; for(int l=0;l<k;l++) v=father[v]; ccc++; dfs(v,0); } }}int main(){ int i,j; int T; scanf("%d",&T); while(T--){ memset(father,0,sizeof(father)); memset(visited,0,sizeof(visited)); ccc=0; maxd=0; scanf("%d",&n); scanf("%d %d",&s,&k); int a,b; for(i=0;i<n-1;i++){ scanf("%d %d",&a,&b); vvv[a].push_back(b); vvv[b].push_back(a); } gen_tree(s,-1,0); solve(); printf("%d\n",ccc); for(i=0;i<=n;i++){ vvv[i].clear(); tree[i].clear(); } } return 0;}/*2 14 12 21 2 2 3 3 4 4 5 5 6 7 5 8 5 4 9 10 3 2 12 12 14 13 14 14 11 14 3 4 1 2 2 3 3 4 4 5 5 6 7 5 8 5 4 9 10 3 2 12 12 14 13 14 14 11*/
0 0
- uva 1267 Network
- uva 1267 Network
- UVA 1267 Network
- UVA - 1267 Network
- uva 1267 - Network(dfs)
- UVa:1267 Network
- UVA 1267 - Network
- uva 1267 - Network(dfs)
- UVA 1267 Network(dfs)
- LA 3902 UVA 1267 - Network
- UVa 1267 Network (DFS&贪心)
- uva 1267 Network(DFS)
- Network UVA
- UVA 1267 - Network(贪心DFS)
- UVA 10369 Arctic Network
- UVA 10369 - Arctic Network
- UVa 793 - Network Connections
- UVa 10369 - Arctic Network
- Binary XML file line #2: Error inflating class android.widget
- 使用spring @Scheduled注解执行定时任务
- WinMain函数学习笔记
- Java设计模式之从[剪刀石头布AI策略]分析策略(Strategy)模式
- 1
- UVA 1267 - Network
- java多线程基础概要
- stm32初学之Systick
- 设计模式六大原则之--开闭原则(OCP)
- 关于C#/WPF的SerialPort类串口接受数据异常的问题
- Java Web中的过滤器Filter
- 数据库加锁小结
- 如何批量修改文件名
- C语言中getchar()函数的理解