[codeforces 1373D] Maximum Sum on Even Positions 翻转不改变相对位置+两种交换形式

本文深入解析了Codeforces Round 90中问题D——“偶数位置最大和”的解决策略,通过翻转数组中的连续子序列,探讨了两种不同的元素交换形式,以实现偶数位置元素和的最大化。文章提供了详细的样例模拟和AC代码,为读者提供了实战经验。

Educational Codeforces Round 90 (Rated for Div. 2)   参与排名人数12840

[codeforces 1373D]    Maximum Sum on Even Positions  翻转不改变相对位置+两种交换形式

总目录详见https://blog.youkuaiyun.com/mrcrack/article/details/103564004

在线测评地址http://codeforces.com/contest/1373/problem/D

Problem Lang Verdict Time Memory
D - Maximum Sum on Even Positions GNU C++17 Accepted 93 ms 4400 KB

题目大意:给定一个数组,可以至多对其中的连续子序列进行一次翻转,求出所有可能中的,该数组偶数位置上的元素最大和。

样例模拟如下

8
c++14 # P14725 [ICPC 2022 Seoul R] Folding Stick ## 题目描述 有一根可折叠的棍子,由 $n$ 段长度为正的节段组成。节段之间通过铰链(可伸缩的细绳)连接,允许每段在铰链处折叠 $180$ 度。**缠绕长度** 是指棍子在一个或多个铰链处折叠后折叠部分的长度。根据折叠策略的同,缠绕长度可能同。 你需要在以下折叠方式的条件下找到最小的缠绕长度:首先,将棍子的各节段沿水平线放置。然后,从左到右顺时针折叠棍子。在折叠过程中,每个铰链左侧所连接的节段要么顺时针旋转 $180$ 度,要么完全旋转。 例如,下图展示了一根四节段的棍子,节段长度总和为 $10$。图中,从左到右各节段的长度分别为 $3$、$2$、$2$ 和 $3$,铰链标记为 ①、②、③。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/vsm99tzh.png) ::: 在此例中,棍子能在铰链 ① 和 ② 处同时折叠。这是因为如果先在铰链 ① 处折叠,再在铰链 ② 处折叠,经过铰链 ② 的长度为 $3$ 的节段将被折断。如果仅在铰链 ② 处折叠,缠绕长度为 $5$。如果依次在铰链 ① 和 ③ 处折叠,缠绕长度为 $4$,如下图所示。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/96ppywpi.png) ::: 给定一根可折叠棍子的节段长度序列,请编写程序输出该棍子的最小缠绕长度。 ## 输入格式 你的程序需要从标准输入读取数据。输入的第一行包含一个整数 $n$ ($2 \leq n \leq 100,000$),其中 $n$ 是可折叠棍子的节段数。第二行包含 $n$ 个正整数,表示从棍子最左端到最右端的节段长度序列。每段长度超过 $20,000$。 ## 输出格式 你的程序需要向标准输出写入数据。输出恰好一行。该行应包含一个正整数,表示最小缠绕长度。 ## 输入输出样例 #1 ### 输入 #1 ``` 4 3 2 2 3 ``` ### 输出 #1 ``` 4 ``` ## 输入输出样例 #2 ### 输入 #2 ``` 5 1 1 1 1 1 ``` ### 输出 #2 ``` 1 ``` ## 输入输出样例 #3 ### 输入 #3 ``` 7 1 3 2 3 4 2 2 ``` ### 输出 #3 ``` 6 ```
最新发布
12-14
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值