HDU 4707 Pet

來源:互聯網
上載者:User

標籤:

                  Pet




Problem DescriptionOne day, Lin Ji wake up in the morning and found that his pethamster escaped. He searched in the room but didn’t find the hamster. He tried to use some cheese to trap the hamster. He put the cheese trap in his room and waited for three days. Nothing but cockroaches was caught. He got the map of the school and foundthat there is no cyclic path and every location in the school can be reached from his room. The trap’s manual mention that the pet will always come back if it still in somewhere nearer than distance D. Your task is to help Lin Ji to find out how many possible locations the hamster may found given the map of the school. Assume that the hamster is still hiding in somewhere in the school and distance between each adjacent locations is always one distance unit. 

 

InputThe input contains multiple test cases. Thefirst line is a positive integer T (0<T<=10), the number of test cases. For each test cases, the first line has two positive integer N (0<N<=100000) and D(0<D<N), separated by a single space. N is the number of locations in the school and D is the affective distance of the trap. The following N-1lines descripts the map, each has two integer x and y(0<=x,y<N), separated by a single space, meaning that x and y is adjacent in the map. Lin Ji’s room is always at location 0. 

 

OutputFor each test case, outputin a single line the number of possible locations in the school the hamster may be found. 

 

Sample Input110 20 10 20 31 41 52 63 74 86 9 Sample Output2 
 1 /*待最佳化*/ 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 using namespace std; 6  7 const int maxn=100005; 8 vector<int>v[maxn]; 9 int cnt,n,d;10 int vis[maxn];11 12 void dfs(int t,int disc)13 {14     if(disc>d)15     return;16     vis[t]=1;17     cnt++;18     for(int i=0;i<v[t].size();i++)19     if(!vis[v[t][i]])20     dfs(v[t][i],disc+1);21 }22 23 int main()24 {25     int i,t;26     scanf("%d",&t);27     while(t--)28     {29         memset(vis,0,sizeof(vis));30         cnt=0;31         for(i=0;i<n;i++)32         v[i].clear();33         scanf("%d%d",&n,&d);34         for(i=0;i<n-1;i++)35         {36             int x,y;37             scanf("%d%d",&x,&y);38             v[x].push_back(y);39             v[y].push_back(x);40         }41         dfs(0,0);42         printf("%d\n",n-cnt);43     }44 }

 

HDU 4707 Pet

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.