题目链接

https://codeforces.com/contest/1372/problem/D

题面

题意

给定n(n≤2e5)n(n\leq2e5)n(n≤2e5)个数字,组成一个环,每次你可以取相邻的两个数去替换这个数,收益为这个和,问合并到最后的最大值为多少。

思路

显然,nnn个数,要合并n/2n/2n/2次,那么问题就转化为了,nnn个数找(n+1)/2(n+1)/2(n+1)/2个数而且只有一对数相邻的最大值,那么枚举这对相邻的数即可,前缀处理一下:

dp[i][0]dp[i][0]dp[i][0]记录到iii为止下标为偶数的前缀和
dp[i][1]dp[i][1]dp[i][1]记录到iii为止下标为奇数的前缀和
然后枚举求最大值即可。

参考代码

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e6 + 10;
LL dp[N][2], a[N], n;
int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];a[n + i] = a[i];}for (int i = 1; i <= 2 * n; i++) {dp[i][0] = dp[i - 1][0];dp[i][1] = dp[i - 1][1];dp[i][(i + 1) % 2] += a[i - 1];}LL ans = 0;for (int i = 1; i <= n; i++) {ans = max(ans, a[i] + dp[i + n][i % 2] - dp[i + 1][i % 2]);}cout << ans << endl;return 0;
}

Codeforces Round #655 (Div. 2) D相关推荐

  1. Codeforces Round #655 (Div. 2) C

    题目链接 https://codeforces.com/contest/1372/problem/C 题面 题意 给定一个长度为n(n≤2e5)n(n\leq2e5)n(n≤2e5)的数组,你可以任意 ...

  2. Codeforces Round #655 (Div. 2) A

    题目链接 https://codeforces.com/contest/1372/problem/A 题面 题意 对于给定的n(n≤1000)n(n \leq1000)n(n≤1000)找一个长度为n ...

  3. Codeforces Round #655 (Div. 2) E. Omkar and Last Floor 区间dp + 巧妙的状态设计

    传送门 题意: 思路: 按照贪心的思路来考虑的话,显然是每一列111的个数越多越好,所以我们能放到一列就放到一列.设f[l][r]f[l][r]f[l][r]为在[l,r][l,r][l,r]内,区间 ...

  4. Codeforces Round #655 (Div. 2) D. Omkar and Circle 思维 + 奇偶贪心

    传送门 题意: 给一个长为nnn的数组(nnn为奇数),iii与i−1i-1i−1相邻,111与nnn相邻,每次选择一个位置,将这个位置的值变成与它相邻的两个位置的和,让后将相邻位置删掉.求最终剩下一 ...

  5. Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math 数学

    传送门 题意: 找出A+B=nA+B=nA+B=n并且lcm⁡(A,B)\operatorname{lcm}(A,B)lcm(A,B)最小的AAA和BBB. 思路: nnn为偶数的时候答案肯定为都是n ...

  6. Codeforces Round #655 (Div. 2) B C

    代码如下: #include<iostream> #include<algorithm> #include<cstring> using namespace std ...

  7. Codeforces Round #655 (Div. 2)

    A Omkar and Completion 只要找两个相加不等的数交叉构造即可. AC代码: int main() {int t;sd(t);while (t--){sd(n);rep(i, 1, ...

  8. Codeforces Round #655 (Div. 2) ABCDEF题解

    题号 博客链接 cf分数 算法标签 A https://blog.nuoyanli.com/2020/07/14/codeforces-round-655-div-2-a/ 800 简单 B http ...

  9. Codeforces Round #655 (Div. 2) 题解

    A. Omkar and Completion 查看题解 构造 B. Omkar and Last Class of Math 查看题解 数学 C. Omkar and Baseball 查看题解 思 ...

最新文章

  1. 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...
  2. 【bzoj1086】 scoi2005—王室联邦
  3. 通过企业分布式缓存共享运行时数据
  4. 火了 2 年的服务网格究竟给微服务带来了什么?
  5. 《途客圈创业记:不疯魔,不成活》一一1.6 申请助跑计划
  6. cocos2d-x编程之CCScale9Sprite典型用法
  7. goto php 源码,GoToPHP
  8. java. base关键字_C#基础知识之base关键字介绍
  9. LiveGBS国标GB/T28181流媒体平台华为IPC设备GB35114配置接入说明
  10. NestJS生成二维码
  11. usb打印机命令_自己动手不求人 日常打印机故障全知晓
  12. IDEA社区版下载安装
  13. Python源码阅读(一)
  14. autocad r14 win7补丁_AutoCAD R14几个实用补丁
  15. 2022年前端面试题加答案
  16. C++开源项目:十行代码15个BUG,你入坑了吗?
  17. HDU 1867 A + B for you again(KMP)
  18. 测试工作绝不仅限于点点点
  19. linux移除硬盘命令,在Linux中在线添加及移除SCSI硬盘方法
  20. python椭圆曲线加密算法_ECC椭圆曲线加密学习笔记

热门文章

  1. 和ts一般怎么玩_TS夺冠后马上卖席位?微博电竞欲加盟,以后场场热搜安排上...
  2. PC微信逆向:两种姿势教你解密数据库文件
  3. 2023微软校招开始啦,快来找我内推吧
  4. 游戏服务器 linux windows,游戏服务器用windows还是linux的系统好?
  5. leetcode 回溯算法 17. 电话号码的字母组合
  6. 利用Java计算多少次纸才能对折出珠峰高度
  7. Windows上Emwin的使用
  8. 远程登录服务器链接外网-启动Teamviewer
  9. c#对话框,文件打开对话框,
  10. 用echarts3和worldcloud制作炫酷的字符云图