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

企业网站设计与优化今日新闻国内大事件

企业网站设计与优化,今日新闻国内大事件,动画视频模板网站,在深圳做网站文章目录 题目描述输入描述输出描述用例1解题思路Python3源码 题目描述 吃货"和"馋嘴"两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。但是粗心的服务员将披萨切成了每块大小都完全不…

文章目录

  • 题目描述
  • 输入描述
  • 输出描述
  • 用例1
  • 解题思路
  • Python3源码

题目描述

吃货"和"馋嘴"两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。但是粗心的服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。
由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从"吃货"开始,轮流取披萨。除了第一块披萨可以任意选取外,其他都必须从缺口开始选。
他俩选披萨的思路不同。"馋嘴"每次都会选最大块的披萨,而且"吃货"知道"馋嘴"的想法。
已知披萨小块的数量以及每块的大小,求"吃货"能分得的最大的披萨大小的总和。

输入描述

第 1 行为一个正整数奇数 N,表示披萨小块数量。

  • 3 ≤ N < 500

接下来的第 2 行到第 N + 1 行(共 N 行),每行为一个正整数,表示第 i 块披萨的大小

  • 1 ≤ i ≤ N

披萨小块从某一块开始,按照一个方向次序顺序编号为 1 ~ N

  • 每块披萨的大小范围为 [1, 2147483647]

输出描述

吃货"能分得到的最大的披萨大小的总和。

用例1

输入:
5
8
2
10
5
7

输出:
19

说明:
此例子中,有 5 块披萨。每块大小依次为 8、2、10、5、7。
按照如下顺序拿披萨,可以使"吃货"拿到最多披萨:
“吃货” 拿大小为 10 的披萨
“馋嘴” 拿大小为 5 的披萨
“吃货” 拿大小为 7 的披萨
“馋嘴” 拿大小为 8 的披萨
“吃货” 拿大小为 2 的披萨
至此,披萨瓜分完毕,"吃货"拿到的披萨总大小为 10 + 7 + 2 = 19
可能存在多种拿法,以上只是其中一种。

解题思路

给定一个环形排列的披萨数组,每块披萨有一个美味值,需要计算出从任意位置开始,能够获得的最大美味值总和。

  1. 环形处理:由于披萨是环形排列的,所以在选择披萨时需要考虑边界情况,即当选择了最左边或最右边的披萨后,如何循环到另一端。

  2. 动态规划:使用一个二维数组 dp 作为记忆化存储,其中 dp[L][R] 表示从左边界 L 到右边界 R 能够获得的最大美味值。如果 dp[L][R] 已经被计算过,则直接返回该值。

  3. 递归计算:定义一个递归函数来计算 dp[L][R]。如果 a[L](左边界的披萨美味值)大于 a[R](右边界的披萨美味值),则选择 L 并将L向右移动一位;否则选择 R 并将 R 向左移动一位。这样递归地选择下一步,直到只剩下一块披萨。

  4. 递归基:当左右边界相遇时(即 L == R),说明只剩下一块披萨,直接返回这块披萨的美味值作为递归基。

  5. 状态转移:在递归过程中,dp[L][R] 的值是通过比较选择左边界披萨和右边界披萨后,剩下披萨的最大美味值之和来确定的。

Python3源码

# 读取披萨的数量
n = int(input())
# 读取每块披萨的美味值
arr = [int(input()) for _ in range(n)]# 初始化 dp 数组,dp为记忆化数组,用于存储已计算过的状态
dp = [[-1]*n for _ in range(n)]#计算最大披萨的函数
def cal_max(L,R):# 如果已计算过,直接返回结果if dp[L][R] != -1:return dp[L][R]# 根据美味值选择吃掉左边或右边的披萨if arr[L] > arr[R]:L = (L+1)%nelse:R = (R+n-1)%n# 如果只剩一块披萨,返回其美味值if L == R:dp[L][R] = arr[L]else:dp[L][R] = max(arr[L]+cal_max((L+1)%n,R),arr[R]+cal_max(L,(R+n-1)%n))return dp[L][R]# 初始化最大美味值为 0
ans = 0
# 计算并更新最大美味值
for i in range(n):ans = max(ans,cal_max((i+1)%n,(i+n-1)%n)+arr[i])# 输出最多能吃到的披萨的美味值总和
print(ans)
http://www.ritt.cn/news/7525.html

相关文章:

  • 学做日本料理菜的视频网站百度95099怎么转人工
  • wix做的网站正规百度推广
  • 青岛做网站公司哪家好常用的网站推广方法
  • 网站a记录的是做cname做百度推广员赚钱吗
  • 税务局门户网站建设经验交流材料电商平台app大全
  • 自己做的网站出现乱码东营seo整站优化
  • 杭州网站建设是什么百度竞价推广什么意思
  • 网站页面设置手机版seo搜索引擎优化工具
  • 微信怎么做自己的网站友链购买
  • 网站一年的费用关键词指数批量查询
  • 新网站建设验收做网站的外包公司
  • 网站建设公司年终总结百度推广工具
  • 怎么把在微企点做响应式网站站长统计app软件下载官网安卓
  • 建设银行网上营业厅官方网站下载百度客服人工
  • 网站制作 昆明磁力珠
  • 昆明软件公司有哪些安顺seo
  • 做网站怎样做网络推广赚钱
  • 滨湖区知名做网站选哪家线上营销活动案例
  • 湘潭网站建设 就问磐石网络专业企业网络搭建
  • 专门做软陶的网站推广接单平台
  • html5做静态网站互联网推广营销方案
  • 建设网站设计专业服务网站推广 方法
  • 网站制作员网络推广的工作内容
  • 网站开发注意seo一个月工资一般多少
  • 网站开发 360浏览器免费创建属于自己的网站
  • 网站开发java好还是php好索引擎优化 seo
  • 网站域名注册商标友链购买网
  • 武汉北京网站建设东莞seo排名优化
  • 怎么开自己的网站临沂今日头条新闻最新
  • 宗亲网站建设建议每日一则新闻摘抄