悬7关求调WA 10
查看原帖
悬7关求调WA 10
532109
freedom_wang楼主2024/8/22 20:14
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define rop(i,a,b) for(int i=a;i<b;i++)
#define per(i,a,b) for(int i=a;i>=b;i--)
#define por(i,a,b) for(int i=a;i>b;i--)
#define endl '\n'
#define pii pair<int,int>
#define fi first
#define se second
typedef long long ll;
typedef unsigned long long ull;
typedef double lf;
typedef long double ld;
using namespace std;
int n,k,u,v,dp[1005][6][5005],g[5][5005],siz[1005],res;
vector<int>e[1005];
void dfs(int u,int fa){
	rep(i,1,k)
		dp[u][i][0]=1;
	siz[u]=1;
	for(auto to:e[u]){
		if(to==fa)
			continue;
		dfs(to,u);
		memset(g,0,sizeof(g));
		rep(d1,0,k)
			rep(x1,0,siz[u]*k)
				if(dp[u][d1][x1])
					rep(d2,0,k)
						rep(x2,0,siz[to]*k)
							if(dp[to][d2][x2])
								g[max(x1+d1+x2,x1+x2+d2)-(x1+x2+d2)][x1+x2+d2]=(g[max(x1+d1+x2,x1+x2+d2)-(x1+x2+d2)][x1+x2+d2],(dp[u][d1][x1]*dp[to][d2][x2])%1000000007)%1000000007;
		memcpy(dp[u],g,sizeof(g));
		siz[u]+=siz[to];
	}
}
signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>k;
	rop(i,1,n){
		cin>>u>>v;
		e[u].push_back(v);
		e[v].push_back(u);
	}
	dfs(1,0);
	rep(i,1,k*n){
		res=0;
		rep(j,0,k)
			(res+=dp[1][j][i-j])%=1000000007;
		cout<<res<<endl;
	}
	return 0;
}

record

2024/8/22 20:14
加载中...