0
点赞
收藏
分享

微信扫一扫

acwing(dp集合GOOD )1050. 鸣人的影分身(蓝桥杯)

zhyuzh3d 2022-03-24 阅读 79

题目:1050. 鸣人的影分身

在这里插入图片描述
思路:该问题等价于将m个苹果放置在无序的n个盘子里有多少种方法

#include<bits/stdc++.h>

using namespace std;
typedef long long LL;
typedef pair<double,double>PII;
const int N=(1<<20)+10;
const int mod=1000000009;
int f[15][15];//f[i][j],i表示的是苹果数量,j表示的是盘子数量
int main(){
    int t;
    cin>>t;
    int n,m;
    for(int i=0;i<=10;i++){//当苹果数量为0时,任何盘子都为0,只有一种放置方法
        f[0][i]=1;
    }
    for(int i=1;i<=10;i++){
        for(int j=1;j<=10;j++){//j不从0开始的原因是因为只要有苹果,盘子就不能没有
            f[i][j]=f[i][j-1];//第j个盘子放0
            if(i>=j) f[i][j]+=f[i-j][j];//每个盘子都加上一个1 (这样才不会导致同一集合因顺序不同而增加次数)
        }
    }
    while(t--){
        cin>>m>>n;
        cout<<f[m][n]<<endl;
    }
    return 0;
}

举报

相关推荐

0 条评论