2022
题目 2022
思路分析
背包问题
代码实现
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long LL;
const int N=2030;
int a[N];
int n=2022,m=2022;
LL f[N][15][N];//从前i个物品中选了j件 总和等于k的所有选法的集合 属性count
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
for(int i=1;i<=n;i++) a[i]=i;
for(int i=0;i<=n;i++) f[i][0][0]=1;//前i物品中选0件 价值为0的选法数都有1种
for(int i=1;i<=n;i++){
for(int j=1;j<=10;j++){
for(int k=0;k<=m;k++){
f[i][j][k]+=f[i-1][j][k];
if(k>=a[i])
f[i][j][k]+=f[i-1][j-1][k-a[i]];
}
}
}
cout<<f[n][10][m];
return 0;
}
同类题型
视频讲解
⬅️ 第十三届蓝桥杯大赛软件赛决赛C/C++ 大学 B 组 🏠 00-冲刺国赛 ➡️ 钟表
💬 评论