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

影视网站怎么做找公司做网站多少钱

影视网站怎么做,找公司做网站多少钱,佛山专门做网站设计怎样做,手机价格网站建设题目:如下图是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大,及路径情况。(使用蛮力算法和动态规划算法分别实现) #include…

题目:如下图是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大,及路径情况。(使用蛮力算法和动态规划算法分别实现)

#include<bits/stdc++.h>
#define MAX_SIZE 100 
using namespace std;
//蛮力算法
int maxPathSumForce(int pyramid[][MAX_SIZE],int row){if(row==1){return pyramid[0][0];}int maxSum=pyramid[0][0];for(int i=1;i<row;i++){for(int j=0;j<i;j++){if(j==0){pyramid[i][j]+=pyramid[i-1][j];		}else if(j==i){pyramid[i][j]+=pyramid[i-1][j-1];}else{pyramid[i][j] += (pyramid[i - 1][j - 1] > pyramid[i - 1][j] ? pyramid[i - 1][j - 1] : pyramid[i - 1][j]);}if (pyramid[i][j] > maxSum) {maxSum = pyramid[i][j];}
}}return maxSum;
} //动态规划算法int maxPathSumDP(int pyramid[][MAX_SIZE], int rows) {if (rows == 1) {return pyramid[0][0];}for (int i = rows - 2; i >= 0; i--) {for (int j = 0; j <= i; j++) {pyramid[i][j] += (pyramid[i + 1][j] > pyramid[i + 1][j + 1] ? pyramid[i + 1][j] : pyramid[i + 1][j + 1]);}}return pyramid[0][0];
}signed main()
{int pyramid[MAX_SIZE][MAX_SIZE];int row,num;cout<<"请输入数塔的层数:";cin>>row;cout<<"请输入数塔的数字(每层从左到右依次输入):"<<endl;for(int i=0;i<row;i++){for(int j=0;j<=i;j++){cin>>num;pyramid[i][j]=num;}}cout<<"蛮力算法最大路径和为:"<<maxPathSumForce(pyramid,row)<<endl;cout<<"动态规划算法最大路径和为:"<<maxPathSumDP(pyramid,row)<<endl; } 

蛮力算法的解释:

1. 首先,如果金字塔只有一行(rows == 1),则直接返回金字塔顶部的值(pyramid[0][0])。

2. 初始化最大路径和为金字塔顶部的值(maxSum = pyramid[0][0])。

3. 使用两个嵌套的循环遍历金字塔的每一行和每一列。外层循环变量i表示行数,内层循环变量j表示列数。

4. 在内层循环中,根据当前位置的行数和列数,计算当前位置的值。具体计算方式如下:
- 如果当前位置是行的开头(j == 0),则当前位置的值等于上一行同列位置的值加上当前位置的值(pyramid[i][j] += pyramid[i - 1][j])。
- 如果当前位置是行的末尾(j == i),则当前位置的值等于上一行前一列位置的值加上当前位置的值(pyramid[i][j] += pyramid[i - 1][j - 1])。
- 否则,当前位置的值等于上一行前一列位置的值和上一行同列位置的值中的较大值(pyramid[i][j] += (pyramid[i - 1][j - 1] > pyramid[i - 1][j] ? pyramid[i - 1][j - 1] : pyramid[i - 1][j]))。

5. 在内层循环中,每次更新当前位置的值后,判断当前位置的值是否大于最大路径和(maxSum)。如果是,则更新最大路径和为当前位置的值。

动态规划算法的解释:(从下到上代码更加简洁,可能性更小)

1. 首先,如果金字塔只有一行(rows == 1),则直接返回金字塔顶部的值(pyramid[0][0])。

2. 使用两个嵌套的循环从倒数第二行开始向上遍历金字塔的每一行和每一列。外层循环变量i表示行数,内层循环变量j表示列数。

3. 在内层循环中,根据当前位置的行数和列数,计算当前位置的值。具体计算方式如下:
- 当前位置的值等于当前位置的值加上 下一行同列位置和下一行下一列位置中的较大值(pyramid[i][j] += (pyramid[i + 1][j] > pyramid[i + 1][j + 1] ? pyramid[i + 1][j] : pyramid[i + 1][j + 1]))。

4. 循环结束后,金字塔顶部的值即为从顶部到底部的最大路径和。

5. 返回金字塔顶部的值。
 

http://www.mnyf.cn/news/13564.html

相关文章:

  • 东莞 塑胶 网站建设外链平台
  • 店铺装修模板seo整站网站推广优化排名
  • 验证码网站搭建深圳短视频推广
  • 保山网站制作制作公司网站的公司
  • 外贸网站定制世界500强企业排名
  • node.js做网站开发网站优化资源
  • 保定门户网站seo的基本内容
  • 环保公司网站模板百度热搜广告设计公司
  • 郑州前端开发培训机构郑州seo推广优化
  • 网站商城建设套餐网站百度关键词seo排名优化
  • 沛县可以做网站的单位百度竞价排名事件
  • 北京企业建站谷歌关键词热度查询
  • 做的网站没法本地上传图片seo网站优化课程
  • 市场营销和网络营销长沙seo优化排名
  • 民和网站建设公司网站优化排名优化
  • 怎么看一个网站做得好不好软文兼职
  • 教学网站前台模板搜索引擎优化的缺点包括
  • 建个企业网站收费整站优化网站
  • wordpress导航怎么弄杭州seo排名优化
  • 电商平台正在建设中网站页面提示重庆网站seo多少钱
  • 四川省的建设厅注册中心网站百度明星人气榜入口
  • 苏州手机网站建设广东省最新疫情
  • 网络设备互联课设建设企业网站cfa三级和一二级关系大吗
  • 高校网站建设的优势和不足电商平台网站
  • 网站后台的用户名标题优化怎样选关键词
  • 网站建设石家庄快优百度seo外包
  • 咋做抽奖网站北京网络推广外包公司排行
  • 12306网站做的好垃圾郑州seo公司排名
  • 宝安做棋牌网站建设有哪些公司大数据营销的案例
  • 标准版网站制作百度指数网址是什么