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

百度哪个网站做贸易关键词你们懂的

百度哪个网站做贸易,关键词你们懂的,给别人做网站挣钱吗,北京网站优化公司哪家好题目描述: 题目分析: 我也没有完全搞太明白,简单说说我的理解 1.dp【i】【j】表示前 i 个砝码,是否可以称出来重量为 j 的物品,如果可以的话,值为1,不可以 为0; 2.针对当前第 i 个…

题目描述:

 题目分析:

 我也没有完全搞太明白,简单说说我的理解

1.dp【i】【j】表示前 i 个砝码,是否可以称出来重量为 j 的物品,如果可以的话,值为1,不可以

为0;

2.针对当前第 i 个砝码,一共有三种选择,分别是放到左边、右边又或者是不放该砝码【优先将砝码放在右边】

如题例所示:第一个砝码【重 1】可以称重 0 与 1 两个重量

此时开始处理第二个砝码,重 4 :

第一种:将砝码放在右边:那么右边砝码的重量就是 1 + 4 = 5;可以称出质量为 5 的物品,则dp【2】【5】= 1;

第二种:将砝码放在左边:那么右边砝码的重量就是 1 ,左边砝码质量为 4 ,可以称出质量为 3 的物品,则dp【2】【3】= 1;

第三种:不放砝码:可以称出质量为 1 的物品,则dp【2】【1】= 1;

但是如何用动态规划的思路将再这种思想用编程实现了:

首先,设定初始值当 0 个砝码时,只有 重量 0 可以被称出来,令dp【0】【0】= 1;其余值全部为0;

接下来:处理第一个砝码,依次判断dp【1】【j】的值,那怎么判断呢?

根据状态转移式:    dp[i][j] = max(dp[i-1][j],max(dp[i-1][j+w[i]],dp[i-1][abs(j-w[i])]));

首先是dp【1】【0】= max(dp[0][0],max(dp[0][1],dp[0][1])) = 1;

解释:dp[0][0]:既然不放第 1 个物品,质量 0 就被称出来了,那么加上砝码 1 也可以称出来质量 0 ;dp[0][1]、dp[0][1]:表示前0个砝码的组合是否可以称出质量为4的物品。那肯定不可以,所以表达式dp【1】【0】的值就是1,表示前1个砝码可以称出体积为 0 的物品;

接下来判断dp【1】【1】:前前1个砝码可以称出体积为 1 的物品

dp【1】【1】= max(dp[0][1],max(dp[0][2],dp[0][0]))

解释:dp[0][1] = 0、dp[0][2] = 0【这个式子表示将第一个砝码放在右边的情况:只要这个dp[0][2] =1,说明可以称出来质量为2的物品,那么就能dp[1][1]也一定能成功,因为将该砝码放到左边,为了保持平衡,左边要再添加重量为 1 的物品,这样也就被称出来了】意思好像是:加在右边的话,是通过左边加物品实现平衡的

dp[0][0] = 1;【表示将砝码放在左边的情况】

再举个例子dp【3】【7】:

dp【2】【7】:

dp【2】【7 + 6】:如果为真,那就说明前两个砝码可以称出质量为13的物品,那么把该砝码放到天平左侧,为了保持平衡,左侧还需要添加质量为7的物品,那么质量为7的物品就被测量出来了

dp【2】【7 - 6】:如果为真,那就说明前两个砝码可以称出质量为1的物品,那么把该砝码放到天平右侧,为了保持平衡,左侧还需要添加质量为7的物品,那么质量为7的物品就被测量出来了

题解代码:

dsp:

//砝码称重--一半的分 
#include <bits/stdc++.h>
using namespace std;
const int vinf = 1e5+100;   //砝码之和最大
int vis[vinf];     //用来标记该质量是否可以被称重
int n; 
int val[vinf]; 
void dfs(int x,int y)
{if(y==n+1){if(x>=0){vis[x]=1;cout<<x<<endl;}		return;}//开始深搜dfs(x + val[y],y + 1);  // 砝码放到左边 dfs(x - val[y],y + 1);  //砝码放到右边	dfs(x,y+1); 
}
int main(){cin>>n;//输入砝码的重量for(int i=1;i<=n;++i){//cin>>val[i];               //打印出可以撑出来的 }//已经读取了砝码的重量dfs(0,0);   //初始状态左边为已经平衡的天平左边的重量,右边为第 i 个砝码//开始枚举每一个重量int ans = 0; for(int i=1;i<vinf;++i){if(vis[i]) ans++; }cout<<endl<<ans<<endl;return 0;
}

dp:

//砝码称重--dp 
#include <bits/stdc++.h>
using namespace std;
int n,w[110];
int dp[110][100005]; 
int ans = 0;
int main(){cin>>n;int sum=0;for(int i=1;i<=n;++i){cin>>w[i];sum+=w[i];}dp[0][0]=1;for(int i=1;i<=n;++i){for(int j=0;j<=sum;++j){dp[i][j] = max(dp[i-1][j],max(dp[i-1][j+w[i]],dp[i-1][abs(j-w[i])]));}}for(int i=1;i<=sum;++i){if(dp[n][i])ans++;}cout<<ans<<endl; return 0;
}

http://www.wangmingla.cn/news/504.html

相关文章:

  • 云南网站设计外包做好的网站怎么优化
  • 推荐做那个的电影网站百度竞价点击神器
  • 视频网站做短视频经典软文广告案例
  • wordpress 中英文网站模板如何推广app
  • 单位网站建设目的网络推广是什么工作内容
  • 专业类网站桂林网站设计制作
  • 做海报找素材的网站全网营销图片
  • 泉州网站seo江东seo做关键词优化
  • 建设网站项目概述汕头seo托管
  • 企业云服务平台企业seo网络营销
  • 一起生活小程序怎么注册seo优化seo外包
  • 免费b2b网站大全免费黄页网址链接查询
  • php做网站需要什么技术网络推广产品要给多少钱
  • 做网站的是哪类公司百度账号登陆入口
  • 个人免费域名注册网站做百度推广的网络公司
  • 门户类网站前台免费seo营销优化软件下载
  • 网站诊断书怎么做百度旗下13个app
  • 日照建网站电商关键词查询工具
  • 互动网站建设自媒体seo是什么意思
  • 鲜花团购网站建设太原关键词优化报价
  • 陕西网站建设公司找哪家网络营销渠道建设方案
  • j2ee博客网站开发重庆排名seo公司
  • 明星做代言的购物网站0东莞seo关键词
  • 树莓派做网站服务器性能怎么样宁波网站推广大全
  • 威海哪有网站建设视频推广一条多少钱
  • 咖啡网站设计建设wordpress自助建站
  • 网站域名费用怎么做帐网站推广seo教程
  • 网络销售是做网站推广百度搜索排名推广
  • 如果一个网站没有备案网站底部友情链接
  • 个人音乐分享网站源码百度seo关键词排名优化软件