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

ps海报素材网站加拿大购物网站排名

ps海报素材网站,加拿大购物网站排名,深圳做网站推广排名,有哪些网站是可以做免费推广的前言: 昨天的题做过之后,今天的题基本上都很简单,但是要注重一下细节。 第一题: 简介: 动态规划五部曲: 1.确定dp数组的含义 dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法 2.确定dp…

前言:

 昨天的题做过之后,今天的题基本上都很简单,但是要注重一下细节。

第一题:

简介:

动态规划五部曲:

1.确定dp数组的含义

   dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法

2.确定dp公式

    i:可以看作本次的物品值

    j:可以看作背包容量

    dp[j] +=dp[j-i];

3.确定如何初始化dp数组

    dp[0] = 1;

4.确定如何遍历数组

   先遍历背包,再遍历物品(因为我们先迈一步再迈两步 还是 先迈两步再迈一步 是有区别的)

 for(int j=0;j<=n;j++){for(int i=1;i<=m;i++){if(j-i>=0)dp[j] +=dp[j-i];}}

5.打印数组,看是否正确

代码实现:

#include <iostream>
#include <vector>
using namespace std;int palou(int m,int n){vector<int> dp(n+1,0);dp[0] = 1;for(int j=0;j<=n;j++){for(int i=1;i<=m;i++){if(j-i>=0)dp[j] +=dp[j-i];}}return dp.back();
}int main(){int m,n;cin>>n>>m;cout<<palou(m,n);return 0;
}

第二题:

简介:

我认为本题的重点在于如何初始化dp数组,自己做时在那里吃了亏。

动规五部曲分析如下:

  1. 确定dp数组以及下标的含义

           dp[j]:凑足总额为j所需钱币的最少个数为dp[j]

     2.确定递推公式                                                                                                                                     递推公式:dp[j] = min(dp[j - coins[i]] + 1, dp[j]);  如果放入就加一个金币,不放入就不加。

     3.dp数组如何初始化                                                                                                                              首先凑足总金额为0所需钱币的个数一定是0,那么dp[0] = 0;然后考虑到递推公式的特性,dp[j]必须初始化为一个最大的数,否则就会在min(dp[j - coins[i]] + 1, dp[j])比较的过程中被初始值覆盖。所以下标非0的元素都是应该是最大值。

代码如下:

vector<int> dp(amount + 1, INT_MAX);
dp[0] = 0;

  4.确定遍历顺序

        本题求钱币最小个数,那么钱币有顺序和没有顺序都可以,都不影响钱币的最小个数。所以本题并不强调集合是组合还是排列。如果求组合数就是外层for循环遍历物品,内层for遍历背包如果求排列数就是外层for遍历背包,内层for循环遍历物品所以本题的两个for循环的关系是:外层for循环遍历物品,内层for遍历背包或者外层for遍历背包,内层for循环遍历物品都是可以的!

5.举例推导dp数组

322.零钱兑换

dp[amount]为最终结果。 

代码实现:

    //dp[j]表示组成j 所需最少硬币个数int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount+1,INT_MAX);dp[0]=0;for(int i=0;i<coins.size();i++){for(int j=coins[i];j<=amount;j++){if (dp[j - coins[i]] != INT_MAX)dp[j] =min(dp[j],dp[j-coins[i]]+1);        }}if(dp.back()==INT_MAX)return -1;elsereturn dp.back();}

第三题:

简介:

  本题和上一题十分相似,只不过我们在遍历时要注意完全平方数就是物品(可以无限件使用),凑个正整数n就是背包,问凑满这个背包最少有多少物品?这样本题是不是就很清晰了。

代码实现:

先遍历背包,再遍历物品

int numSquares(int n) {vector<int> dp(n + 1, INT_MAX);dp[0] = 0;for (int i = 0; i <= n; i++) { // 遍历背包for (int j = 1; j * j <= i; j++) { // 遍历物品dp[i] = min(dp[i - j * j] + 1, dp[i]);}}return dp[n];}

先遍历物品,再遍历背包

    int numSquares(int n) {if(n<4)return n;vector<int> dp(n+1,INT_MAX);dp[0] = 0;for(int i=1;i*i<=n;i++){for(int j=i*i;j<=n;j++){dp[j] =min(dp[j],dp[j-i*i]+1);}}return dp.back();}

总结:

今天使用感觉更加得心应手了,还需努力!

 

 

http://www.yayakq.cn/news/922592/

相关文章:

  • 哈尔滨网站建设有哪些wordpress使用hexo主题
  • 商城网站 价格建设工程施工合同是专属管辖吗
  • 网站登录 退出怎么做加强旅游网站建设
  • 网站首页大图的尺寸WordPress自定义json接口
  • 动漫做暧视频网站一级造价工程师报名
  • 北京市保障房建设投资中心网站首页网站建设的新闻动态
  • w网站怎么做网站企业网站建设需求文档
  • 网站备案幕布拍照济南网站怎么做seo
  • 会员制网站搭建wordpresswordpress链接形式
  • 做网站产品介绍计算机速成班
  • 广州网站建设推广服务免费做网站推广的软件
  • 网站开发有哪些方向食品网站建设方案项目书
  • 怎么做一个企业的网站如何自己开发软件挣钱
  • 办网站费用多少钱深圳网页设计兴田德润实惠
  • 江宁网站建设哪家好在线制作图片及图片处理
  • 电子商务网站开发的基本原则?网页设计实训报告word
  • 做网站需要几大模板wordpress拼团插件
  • 山东网站建设运行工资创新的福州网站建设
  • 找别人做网站注意事项网页动态效果
  • 教学网站开发背景兼职做效果图设计到哪个网站找
  • 网站建设的步骤过程孝感网
  • 本机建设网站河南住房和城乡建设厅
  • 网站设计结果网站备案拍照点
  • 惠州企业建站系统做梯子的企业网站
  • 国外私人网站成都网站建设模板制作
  • 网站备案 幕布网站导航设计模板源码
  • 网站开发案列网站开发话题
  • 宁波市城乡和建设网站优秀电商设计网站有哪些内容
  • 苏州定制建站网站建设高端网站建设品牌
  • 使用wordpress的网站wordpress自动添加关键字