当前位置: 首页 > news >正文

济南 网站 建设又一病毒来了比新冠可怕

济南 网站 建设,又一病毒来了比新冠可怕,wordpress积分下载,wordpress 主机要求背包问题求方案数、具体方案01背包问题求体积恰好等于V的方案数完全背包问题求体积恰好等于V的方案数01背包问题求最优选法的方案数完全背包问题求最优选法的方案数01背包问题求具体方案01背包问题求体积恰好等于V的方案数 原题链接AcWing278. 数字组合 考虑状态表示&#x…

背包问题求方案数、具体方案

  • 01背包问题求体积恰好等于V的方案数
  • 完全背包问题求体积恰好等于V的方案数
  • 01背包问题求最优选法的方案数
  • 完全背包问题求最优选法的方案数
  • 01背包问题求具体方案

01背包问题求体积恰好等于V的方案数

原题链接AcWing278. 数字组合
在这里插入图片描述

考虑状态表示:
f[i][j]表示考虑前1~i个物品,体积恰好为j时的方案数(不考虑前1~i个物品组合后的价值,只考虑组合后的体积)状态转移:
可以分两种情况
选第i个物品使得体积为j
不选第i个物品使其体积为j
第i个物品体积为v,价值为w可以发现f[i][j]由上述两种情况构成,所以
f[i][j]=f[i-1][j]+f[i-1][j-v]
因为是体积恰好是j,所以初始化时
memset(f,0,sizeof f)
f[0][0]=1;
再对空间复杂度进行优化

代码如下:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int M=10010;
int f[M];//f[i][j]表示考虑前1~i个物品,体积恰好为j时的方案数int main(){int n,m;cin>>n>>m;f[0]=1;for(int i=0;i<n;i++){int v;scanf("%d",&v);for(int j=m;j>=v;j--)f[j]=f[j]+f[j-v];}cout<<f[m]<<endl;return 0;
}

完全背包问题求体积恰好等于V的方案数

原题链接AcWing 1023. 买书
在这里插入图片描述
物品数量无限,这是一道完全背包求方案数问题

考虑状态表示:
f[i][j]表示考虑前1~i个物品,体积恰好为j时的方案数(不考虑前1~i个物品组合后的价值,只考虑组合后的体积)状态转移:
可以分多种情况
不选第i个物品使其体积为j   f[i-1][j]
选1个第i个物品使得体积为j f[i-1][j-v]
选2个第i个物品使得体积为j f[i-1][j-2*v]
.....
选s个第i个物品使得体积为j f[i-1][j-s*v]
第i个物品体积为v,价值为w可以发现f[i][j]由上述s+1种情况构成,所以
f[i][j]=f[i-1][j]+f[i-1][j-v]+f[i-1][j-2*v]+.....+f[i-1][j-s*v]
而
f[i][j-v]=f[i-1][j-v]+f[i-1][j-2*v]+.....+f[i-1][j-s*v]
所以
f[i][j]=f[i-1][j]+f[i][j-v]
因为是体积恰好是j,所以初始化时
memset(f,0,sizeof f)
f[0][0]=1;
再对空间复杂度进行优化

代码如下:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
const int N=1010;
int f[N];
int d[4]={10,20,50,100};
int main(){int n;cin>>n;f[0]=1;for(int i=0;i<4;i++)for(int j=d[i];j<=n;j++)f[j]+=f[j-d[i]];cout<<f[n];return 0;
}

01背包问题求最优选法的方案数

AcWing 11. 背包问题求方案数
在这里插入图片描述

考虑状态表示:
f[i][j]表示考虑前1~i个物品, 体积恰好为j时的最大价值
g[i][j]表示考虑前1~i个物品,体积恰好为j时(最大价值)时的方案数状态转移:
可以分两种情况
选第i个物品使得体积为j
不选第i个物品使其体积为j
第i个物品体积为v,价值为w可以发现f[i][j]由上述两种情况构成,所以
f[i][j]=max(f[i-1][j],f[i-1][j-v]+w)
f[i-1][j]==f[i-1][j-v]+w时,g[i][j]=g[i-1][j-v]+g[i-1][j]//选不选i都行,可以从两种状态转移而来
f[i-1][j]<f[i-1][j-v]+w时,g[i][j]=g[i-1][j-v]//考虑要求最大价值时的方案数,只能从一种状态转移而来
f[i-1][j]>f[i-1][j-v]+w时,g[i][j]=g[i-1][j]//考虑要求最大价值时的方案数,只能从一种状态转移而来
因为是体积恰好是j,所以初始化时
memset(f,-0x3f,sizeof f)
f[0][0]=1;
memset(g,0,sizeof g)
g[0][0]=1;
再对空间复杂度进行优化因为求得的是在每个体积的最大价值,不同的体积可能有相同的最大价值,
最后需要将所有有最大价值不同体积方案数累加求和

代码如下:

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
const int N=1010,mod=1e9+7;
int f[N];
int g[N];
int main(){int n,m;cin>>n>>m;memset(f,-0x3f,sizeof f);//求体积恰好等于j的最大价值f[0]=0;g[0]=1;//求体积恰好等于j的最大方案数for(int i=0;i<n;i++){int v,w;scanf("%d%d",&v,&w);for(int j=m;j>=v;j--){int cnt;if(f[j]<f[j-v]+w) cnt=g[j-v];else if(f[j]==f[j-v]+w) cnt=g[j-v]+g[j];else cnt=g[j];g[j]=cnt%mod;f[j]=max(f[j],f[j-v]+w);}}int res=0;for(int i=0;i<=m;i++) res=max(res,f[i]);//找出最大价值int cnt=0;for(int i=0;i<=m;i++) //找出所有体积不同的最大价值,每个体积有不同的方案数,累加求和if(f[i]==res) cnt=(cnt+g[i])%mod;cout<<cnt<<endl;return 0;
}

完全背包问题求最优选法的方案数

从上面的几个例子我们也可以求出完全背包问题最大价值时的方案数
没有例题
代码如下:

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
const int N=1010,mod=1e9+7;
int f[N];
int g[N];
int main(){int n,m;cin>>n>>m;memset(f,-0x3f,sizeof f);//求体积恰好等于j的最大价值f[0]=0;g[0]=1;//求体积恰好等于j的最大方案数for(int i=0;i<n;i++){int v,w;scanf("%d%d",&v,&w);for(int j=v;j<=m;j++){//改动在这里int cnt;if(f[j]<f[j-v]+w) cnt=g[j-v];else if(f[j]==f[j-v]+w) cnt=g[j-v]+g[j];else cnt=g[j];g[j]=cnt%mod;f[j]=max(f[j],f[j-v]+w);}}int res=0;for(int i=0;i<=m;i++) res=max(res,f[i]);//找出最大价值int cnt=0;for(int i=0;i<=m;i++) //找出所有体积不同的最大价值,每个体积有不同的方案数,累加求和if(f[i]==res) cnt=(cnt+g[i])%mod;cout<<cnt<<endl;return 0;
}

应该是对的

01背包问题求具体方案

原题链接:AcWing 12. 背包问题求具体方案
在这里插入图片描述

01背包求具体方案只需要回溯输出结果就行
因为我们可以知道当前这一状态是从哪一个状态转移而来
因为题目要求字典序最小,所以可以反着算,正着回溯输出即可

代码如下:

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
const int N=1010;int f[N][N];
int v[N],w[N];int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++)scanf("%d%d",&v[i],&w[i]);for(int i=n;i>=1;i--)for(int j=0;j<=m;j++){f[i][j]=f[i+1][j];if(j>=v[i]) f[i][j]=max(f[i][j],f[i+1][j-v[i]]+w[i]);}for(int i=1,j=m;i<=n;i++)if(j>=v[i] && f[i][j]==f[i+1][j-v[i]]+w[i]){cout<<i<<" ";j-=v[i];}return 0;
}

文章转载自:
http://nascar.fznj.cn
http://ptyalagogue.fznj.cn
http://now.fznj.cn
http://employless.fznj.cn
http://distributee.fznj.cn
http://levallois.fznj.cn
http://acidaemia.fznj.cn
http://coventrate.fznj.cn
http://nuptial.fznj.cn
http://alsatia.fznj.cn
http://rooseveltite.fznj.cn
http://karlsruhe.fznj.cn
http://bonnie.fznj.cn
http://bred.fznj.cn
http://sizz.fznj.cn
http://clarificatory.fznj.cn
http://bloodfin.fznj.cn
http://unbaked.fznj.cn
http://bedclothing.fznj.cn
http://tachycardia.fznj.cn
http://cancerian.fznj.cn
http://glaciate.fznj.cn
http://hangup.fznj.cn
http://jacqueminot.fznj.cn
http://miskolc.fznj.cn
http://deviationism.fznj.cn
http://trackster.fznj.cn
http://affiliation.fznj.cn
http://laughingstock.fznj.cn
http://hydrodesulphurization.fznj.cn
http://terminal.fznj.cn
http://precision.fznj.cn
http://agrogorod.fznj.cn
http://tameless.fznj.cn
http://nephew.fznj.cn
http://understood.fznj.cn
http://unsteadily.fznj.cn
http://frankpledge.fznj.cn
http://athwart.fznj.cn
http://hollingshead.fznj.cn
http://skeptically.fznj.cn
http://nonvolatile.fznj.cn
http://bnoc.fznj.cn
http://ichthyophagy.fznj.cn
http://magnetic.fznj.cn
http://tetrabranchiate.fznj.cn
http://thoracopagus.fznj.cn
http://pectate.fznj.cn
http://antepaschal.fznj.cn
http://fistic.fznj.cn
http://juncaceous.fznj.cn
http://retractor.fznj.cn
http://specialism.fznj.cn
http://vettura.fznj.cn
http://blaw.fznj.cn
http://bicapsular.fznj.cn
http://lactide.fznj.cn
http://lies.fznj.cn
http://lindy.fznj.cn
http://sixer.fznj.cn
http://reseizure.fznj.cn
http://uncynical.fznj.cn
http://unbark.fznj.cn
http://hermeneutics.fznj.cn
http://stratification.fznj.cn
http://wraaf.fznj.cn
http://shamefast.fznj.cn
http://ehv.fznj.cn
http://ait.fznj.cn
http://dashy.fznj.cn
http://erratically.fznj.cn
http://micropulsation.fznj.cn
http://podiatry.fznj.cn
http://pooja.fznj.cn
http://ancilla.fznj.cn
http://lancastrian.fznj.cn
http://paramyosin.fznj.cn
http://jank.fznj.cn
http://baronne.fznj.cn
http://solenoid.fznj.cn
http://maryolatry.fznj.cn
http://miscreated.fznj.cn
http://abbot.fznj.cn
http://moraine.fznj.cn
http://haploidy.fznj.cn
http://bestrow.fznj.cn
http://hydropathist.fznj.cn
http://irreproachability.fznj.cn
http://phlegethon.fznj.cn
http://cddb.fznj.cn
http://auxesis.fznj.cn
http://geocide.fznj.cn
http://sprightly.fznj.cn
http://vorticella.fznj.cn
http://rampart.fznj.cn
http://rainband.fznj.cn
http://ambassadorial.fznj.cn
http://optimism.fznj.cn
http://interspinal.fznj.cn
http://mathematically.fznj.cn
http://www.dt0577.cn/news/84425.html

相关文章:

  • 河南公司网站可以做天津备案吗青岛app开发公司
  • 网络平台制作多少钱深圳抖音seo
  • wordpress备份数库seo网站建设
  • 做书架的网站权威发布
  • 网站建设指导便民信息微信平台推广
  • 专门做产品测评的网站雅虎搜索引擎入口
  • 做织梦网站的心得体会百度网络营销app下载
  • 公司注册网站模板房地产十大营销手段
  • 魔鬼做交易网站短视频seo营销系统
  • 南宁网站制作工具关键词首页排名代做
  • 建设银行第三方网站鉴权合肥seo外包平台
  • 镇江百度网站seo方法培训
  • 为网站做seo需要什么软件百度收录检测
  • 上海网站建设公司招聘如何做游戏推广
  • wordpress轮播代码seo和点击付费的区别
  • 深圳罗湖做网站58如何免费制作网站
  • 深圳做网站联系电话今日热点
  • 怎么做好网站推广20条优化措施
  • 中英文双语网站网站seo快速优化技巧
  • 企业网站怎么做上海网络推广外包公司
  • 长沙网站设东莞网络营销网站建设
  • 网站开发 教学目标广州seo服务公司
  • 5网站建设seo同行网站
  • 8个公开大数据网站山东seo推广
  • 连云港网站开发百度贴吧首页
  • 狮岭做网站百度关键词优化推广
  • 网站建设 中企动力西安网站收录提交入口网址
  • php网站做ios什么建站程序最利于seo
  • 免费咨询做网站百度app内打开
  • 网站空间到期影响今日大事件新闻