首页 > 其他 > 详细

Luogu 2767

时间:2021-08-20 11:42:42      阅读:32      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 2种方法,一种是数学方法,一种是DP。

一.数学方法

技术分享图片

 

这个记一波结论吧,至于组合数那就是Lucas定理啦。

二.DP

这个就比较简单易懂了

设dp[i][j]为一共有i个点,根节点有j个节点的方案数

技术分享图片

 

 

#include<bits/stdc++.h>
using namespace std;
const int mod=10007;
int n,m,dp[1001][1001];
int main()
{
    cin>>n>>m;
    for(int i=0;i<=m;i++) dp[0][i]=1;
    for(int i=0;i<=m;i++) dp[1][i]=1;
    for(int i=2;i<=n;i++)
    for(int j=1;j<=m;j++)
    for(int k=0;k<i;k++)
    dp[i][j]=(dp[i][j]+dp[k][m]*dp[i-k][j-1]%mod)%mod;
    cout<<dp[n][m];
    return 0;
}

 

Luogu 2767

原文:https://www.cnblogs.com/simpleton/p/15165113.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!