做科学小制作的视频网站,怎么才能建立自己的网站啊,网站logo模板,公司如何组建网站可以转化为01背包求方案数的问题#xff0c;dp数组f[][]表示第几个砝码能称出的重量,可压缩至一维 转移方程为f(i,j)f(i-1,j-w[i]) 当前我们可以称出的重量必定是由之前的砝码重量转移过来的 #includebits/stdc.h
using namespace std;
const int N550;
const int max… 可以转化为01背包求方案数的问题dp数组f[][]表示第几个砝码能称出的重量,可压缩至一维 转移方程为f(i,j)f(i-1,j-w[i]) 当前我们可以称出的重量必定是由之前的砝码重量转移过来的 #includebits/stdc.h
using namespace std;
const int N550;
const int maxn1e67;
int f[maxn];
int a[maxn];
int v[maxn];//相当于01背包的物品重量
int num[10]{0,1,2,3,5,10,20};//砝码重量
int cnt;
int maxsum;
int ans;
int main()
{for(int i1;i6;i){scanf(%d,a[i]);for(int j1;ja[i];j){v[cnt]num[i];//统计}}for(int i1;icnt;i){maxsumv[i];//背包的最大容量}f[0]1;//0也是一种方案初始状态for(int i1;icnt;i)//01背包{for(int jmaxsum;jv[i];j--){f[j]f[j-v[i]];}}for(int i1;imaxsum;i)//统计方案个数{if(f[i]){ans;}}printf(Total%d,ans);return 0;
} 转载于:https://www.cnblogs.com/LJB666/p/10808631.html