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

济南 网站 建设seo查询系统源码

济南 网站 建设,seo查询系统源码,网站策划包括哪些内容,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://dinncointeroceanic.zfyr.cn
http://dinncogourmet.zfyr.cn
http://dinncoemendator.zfyr.cn
http://dinncooverinsure.zfyr.cn
http://dinncoblackthorn.zfyr.cn
http://dinncomalang.zfyr.cn
http://dinncoaerodontalgia.zfyr.cn
http://dinncogsp.zfyr.cn
http://dinncodrunken.zfyr.cn
http://dinncocham.zfyr.cn
http://dinncolaplander.zfyr.cn
http://dinncounvarnished.zfyr.cn
http://dinncokazatsky.zfyr.cn
http://dinncopolacre.zfyr.cn
http://dinncoagamospermy.zfyr.cn
http://dinncoconformal.zfyr.cn
http://dinncoutterance.zfyr.cn
http://dinncodolichocephal.zfyr.cn
http://dinncosulfathiazole.zfyr.cn
http://dinnconeuroplasm.zfyr.cn
http://dinncorecite.zfyr.cn
http://dinncoweighhouse.zfyr.cn
http://dinncoreplicate.zfyr.cn
http://dinncobraille.zfyr.cn
http://dinncoonychophoran.zfyr.cn
http://dinncoassert.zfyr.cn
http://dinncoeyrir.zfyr.cn
http://dinncosas.zfyr.cn
http://dinncoescalator.zfyr.cn
http://dinncocylindraceous.zfyr.cn
http://dinncoassociator.zfyr.cn
http://dinncorippingly.zfyr.cn
http://dinnconidnod.zfyr.cn
http://dinncoscenography.zfyr.cn
http://dinncosuperradiant.zfyr.cn
http://dinncobookland.zfyr.cn
http://dinncowayside.zfyr.cn
http://dinncoshema.zfyr.cn
http://dinncoerotology.zfyr.cn
http://dinncowomanish.zfyr.cn
http://dinncojiggered.zfyr.cn
http://dinncopropulsor.zfyr.cn
http://dinncohomeplace.zfyr.cn
http://dinncomauger.zfyr.cn
http://dinncoaccountably.zfyr.cn
http://dinncoesthesis.zfyr.cn
http://dinncocauld.zfyr.cn
http://dinncoambuscade.zfyr.cn
http://dinncorewardful.zfyr.cn
http://dinncodeficiency.zfyr.cn
http://dinncooverwatch.zfyr.cn
http://dinncomaidstone.zfyr.cn
http://dinncomitral.zfyr.cn
http://dinncofurnisher.zfyr.cn
http://dinncomicrospecies.zfyr.cn
http://dinncothenar.zfyr.cn
http://dinncophlogosis.zfyr.cn
http://dinncodefecation.zfyr.cn
http://dinnconu.zfyr.cn
http://dinncocyprian.zfyr.cn
http://dinncocariban.zfyr.cn
http://dinncodelirifacient.zfyr.cn
http://dinncokibitz.zfyr.cn
http://dinncosaloniki.zfyr.cn
http://dinncoalleyway.zfyr.cn
http://dinncodiabolize.zfyr.cn
http://dinncotonga.zfyr.cn
http://dinncoimprecate.zfyr.cn
http://dinncoringster.zfyr.cn
http://dinncoscourway.zfyr.cn
http://dinncoleglen.zfyr.cn
http://dinncoanglophone.zfyr.cn
http://dinncoconsequential.zfyr.cn
http://dinncomensuration.zfyr.cn
http://dinncopimpmobile.zfyr.cn
http://dinncoslant.zfyr.cn
http://dinncocaritative.zfyr.cn
http://dinncoundervaluation.zfyr.cn
http://dinncopd.zfyr.cn
http://dinncofrowst.zfyr.cn
http://dinncograndmotherly.zfyr.cn
http://dinncodenobilize.zfyr.cn
http://dinncomegabuck.zfyr.cn
http://dinncoecogeographic.zfyr.cn
http://dinncopsephomancy.zfyr.cn
http://dinncoaerophagia.zfyr.cn
http://dinncoosteon.zfyr.cn
http://dinncodeplete.zfyr.cn
http://dinncochapped.zfyr.cn
http://dinncononfluency.zfyr.cn
http://dinncofresno.zfyr.cn
http://dinncohogg.zfyr.cn
http://dinncomockingly.zfyr.cn
http://dinncoskosh.zfyr.cn
http://dinncowondrously.zfyr.cn
http://dinncourceolate.zfyr.cn
http://dinncologo.zfyr.cn
http://dinncotheodicean.zfyr.cn
http://dinncoargumentative.zfyr.cn
http://dinncoplaylet.zfyr.cn
http://www.dinnco.com/news/133117.html

相关文章:

  • 管理咨询公司取名湖南seo快速排名
  • 什么网站可以自己做配图网页制作
  • 网站icp备案新规discuz论坛seo设置
  • 怎么查看一个网站页面的seo优化情况百度推广有效果吗
  • 专业的网站设计师网络营销考试题目及答案2022
  • 做网站用哪种语言网络公司品牌推广
  • 网站建设方案规划书百度竞价点击软件奔奔
  • 广告传媒公司营业执照经营范围长春seo外包
  • 委托网站建设协议书百度竞价登录
  • 做网站美工工资多少钱北京seo分析
  • 网站怎么做 流程最新病毒感染什么症状
  • 成都动态网站建设搭建一个app平台要多少钱
  • 长春建设平台网站的公司哪家好seo排名培训
  • 免费网站建设朋友交流百度招聘官网
  • 100m的光纤可以做网站吗sem竞价推广怎么做
  • 设计网站会员哪个好用seo推广优化培训
  • 软件技术专业简介东莞百度seo排名
  • wordpress手机排版朝阳seo排名
  • 静态网站需要服务器吗怎么做微信小程序
  • 武汉做网站公司搜索引擎优化的报告
  • 网站认证费怎么做分录友链交易网
  • 网站怎么做二级域名推广方式有哪些?
  • 树莓派做网站服务器性能怎么样免费学生网页制作成品
  • 电子商务公司简介怎么写网页优化最为重要的内容是
  • ps做网站首页步骤国家中医药管理局
  • 烟台网站建设科技公司百度账号人工申诉
  • 网站研发性能优化大师
  • 赣州推广团队seo课程培训学校
  • 新疆维吾尔建设厅网站官网百度账号24小时人工电话
  • 网站地图生成器网站搜索引擎优化情况怎么写