2015多校联合训练第三场Work(hdu5326)

题意: a是b的上司,,b是c的上司,则a是c的上司,问构成一个树种,有多人是 k个人的上司 思路: 先找出root,然后dfs一下就行

;const int MAXN = 1e6;int f[105];int n, k;int mp[101][101];int ans;int visit[101];int sum[101];void dfs(int root){sum[root] = 0;for(int i = 1; i <= n; i++){if(mp[root][i] == 1){dfs(i);sum[root] += sum[i] + 1;}}if(sum[root] == k) ans++;return;}int main(){#ifdef xxz//freopen(“out.txt”,”w”,stdout);freopen(“in.txt”,”r”,stdin);#endif // xxzwhile(~scanf(“%d%d”,&n,&k)){int A,B;memset(f,0,sizeof(f));memset(mp,0,sizeof(mp));ans = 0;for(int i = 0; i < n-1; i++){scanf(“%d%d”,&A,&B);f[B]++;mp[A][B] = 1;}for(int i = 1; i <= n; i++){if(f[i] == 0) dfs(i);}printf(“%d\n”,ans);}return 0;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

人生难免有挫折,但你是逃避不了的,一定要去面对它

2015多校联合训练第三场Work(hdu5326)

相关文章:

你感兴趣的文章:

标签云: