zoukankan      html  css  js  c++  java
  • D. Distance in Tree(树型Dp计数)

    (其实思路都能想到一点,就是去重这里特别麻烦,没有好的思路。)

    (设dp[i][j]为以i为根深度为j的节点数量)

    (dp[parent][j]=sum{dp[son][j-1]})

    (然后把每个节点作为转折点求答案)

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn=50009;
    struct p{
    	int to,nxt;
    }d[maxn*2];
    int n,k,deep[maxn],head[maxn*2],cnt=1,l,r,ans;
    void add(int u,int v){
    	d[cnt].nxt=head[u],d[cnt].to=v,head[u]=cnt++;
    }
    int f[maxn][509];//u为顶点往下延申长度k 
    void dfs(int now,int fa)
    {
    	f[now][0]=1;
    	for(int i=head[now];i;i=d[i].nxt)
    	{
    		if(fa==d[i].to)	continue;
    		dfs(d[i].to,now);
    		for(int j=0;j<k;j++)
    			ans+=f[now][j]*f[d[i].to][k-j-1];
    		for(int j=1;j<=k;j++)
    			f[now][j]+=f[d[i].to][j-1];
    	}
    }
    int main()
    {
    	scanf("%d%d",&n,&k);
    	for(int i=1;i<n;i++)
    	{
    		scanf("%d%d",&l,&r);
    		add(l,r);add(r,l);
    	}
    	dfs(1,0);
    	cout<<ans;
    }
    
  • 相关阅读:
    css布局模型
    HTML元素分类
    《水经注》卷三十五
    《水经注》卷二十八
    沧浪之水
    网页布局基础
    IndexError: tuple index out of range
    树回归-CART
    树回归-CART
    支持向量机SVM
  • 原文地址:https://www.cnblogs.com/iss-ue/p/12826977.html
Copyright © 2011-2022 走看看