每日一题 4.7 树

https://ac.nowcoder.com/acm/problem/13611

这题是一个树上二维dp
dp[i][j] 表示从某个叶节点出发包括i个点 涂j种颜***r>当你加一个点时只有两种方式 涂用过的 和 没用过的
涂同样的颜色只能跟父节点以上相同 所以为 dp[i-1][j]
涂不同的颜色可能从未涂过的颜色中选 所以为 (k-j+1)*dp[i-1][j-1]
注意随时取模

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll const maxn=3e2+5;
ll const mod=1e9+7;
ll n,k,ans,dp[maxn][maxn];
///dp[i][j] 表示从某个叶节点出发包括i个点  涂j种颜色
///涂同样的颜色只能跟父节点以上相同 所以为dp[i-1][j]
///涂不同的颜色可能从未涂过的颜色中选 所以为 (k-j+1)*dp[i-1][j-1]
int main(){
    cin>>n>>k;
    dp[0][0]=1;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=k;j++)
            dp[i][j]=(dp[i-1][j-1]*(k-j+1)+dp[i-1][j])%mod;
    for(int i=1;i<=k;i++)
    {ans+=dp[n][i];ans%=mod;}
    cout<<ans<<endl;
    return 0;
}
每日一题题解 文章被收录于专栏

每日一题题解的汇集

全部评论

相关推荐

07-22 11:07
门头沟学院 Java
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
给我发了笔试链接,想着等晚上回去做,结果还没做流程就终止了
伟大的小黄鸭在学习:我猜就是笔试几乎没用,就是用来给用人部门拖时间复筛简历的,可能用人部门筛到你简历觉得不合适就提前挂了
投递小鹏汽车等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务