Home
Problem
Status
Contest
Workbook
User
Group
Forum
Register
Login
{"managingGroups":{},"author":"Rakibul97","updateTime":1548961905000,"title":"pastebin","dislikeCnt":0,"content":"#include\u003cbits/stdc++.h\u003e\nusing namespace std;\nbool del[50000+10],vis[50000+10];\nint f[50000+10],st[50000+10],k;\nvector\u003cint\u003ev[500000+10];\nint dfs(int x,int p)\n{\n int sz\u003d1;\n\n for(int i\u003d0;i\u003cv[x].size();i++)\n {\n int b\u003dv[x][i];\n if(del[b]\u003d\u003d0\u0026\u0026b!\u003dp)\n {\n sz+\u003d dfs(b,x);\n }\n }\n st[x]\u003dsz;\n return sz;\n}\nint add(int x,int r,int p)\n{\n int ans\u003d0;\n if(r\u003e0\u0026\u0026r\u003ck)\n {\n ans+\u003df[k-r];\n }\n for(int i\u003d0;i\u003cv[x].size();i++)\n {\n int b\u003dv[x][i];\n if(del[b]\u003d\u003d0\u0026\u0026b!\u003dp)\n {\n ans+\u003d add(b,r+1,x);\n }\n }\n return ans;\n}\nvoid fds(int x,int r,int p)\n{\n if(r)f[r]++;\n for(int i\u003d0;i\u003cv[x].size();i++)\n {\n int b\u003dv[x][i];\n if(del[b]\u003d\u003d0\u0026\u0026b!\u003dp)\n {\n fds(b,r+1,x);\n }\n }\n}\nint centroid(int n,int x,int p)\n{\n\n for(int i\u003d0;i\u003cv[x].size();i++ )\n {\n if(v[x][i]!\u003dp \u0026\u0026 st[v[x][i]]\u003en/2)\n {\n return centroid(n,v[x][i],x);\n }\n }\n return x;\n}\nint func(int n,int x)\n{\n\n int xs\u003ddfs(x,-1);\nif(xs\u003c\u003d2) return 0;\n int C\u003dcentroid(n,x,-1);\n\n int sum\u003d0;\n memset(f,0,sizeof f);\n del[x]\u003d1;\n for(int i\u003d0;i\u003cv[x].size();i++)\n {\n sum+\u003dadd(v[x][i],0,-1);\n fds(v[x][i],0,-1);\n }\n\n sum+\u003df[k];\n\n for(int i\u003d0;i\u003cv[x].size();i++)\n {\n sum+\u003dfunc( st[v[x][i]],v[x][i]);\n }\n return sum;\n}\nint main()\n{\n int n;\n cin\u003e\u003en\u003e\u003ek;\n\n for(int i\u003d1;i\u003cn;i++)\n {\n int x,y;\n cin\u003e\u003ex\u003e\u003ey;\n v[x].push_back(y);\n v[y].push_back(x);\n }\n\n cout\u003c\u003cfunc(n,1);\n}\n","threadId":42870,"likeCnt":0,"createTime":1548961905000,"isWorkbook":false,"viewCnt":1328,"openness":2,"fav":false,"id":867,"trustable":false}