Codeforces Round #655 (Div. 2) D
题目链接
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相关推荐
- Codeforces Round #655 (Div. 2) C
题目链接 https://codeforces.com/contest/1372/problem/C 题面 题意 给定一个长度为n(n≤2e5)n(n\leq2e5)n(n≤2e5)的数组,你可以任意 ...
- Codeforces Round #655 (Div. 2) A
题目链接 https://codeforces.com/contest/1372/problem/A 题面 题意 对于给定的n(n≤1000)n(n \leq1000)n(n≤1000)找一个长度为n ...
- 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]内,区间 ...
- Codeforces Round #655 (Div. 2) D. Omkar and Circle 思维 + 奇偶贪心
传送门 题意: 给一个长为nnn的数组(nnn为奇数),iii与i−1i-1i−1相邻,111与nnn相邻,每次选择一个位置,将这个位置的值变成与它相邻的两个位置的和,让后将相邻位置删掉.求最终剩下一 ...
- 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 ...
- Codeforces Round #655 (Div. 2) B C
代码如下: #include<iostream> #include<algorithm> #include<cstring> using namespace std ...
- Codeforces Round #655 (Div. 2)
A Omkar and Completion 只要找两个相加不等的数交叉构造即可. AC代码: int main() {int t;sd(t);while (t--){sd(n);rep(i, 1, ...
- Codeforces Round #655 (Div. 2) ABCDEF题解
题号 博客链接 cf分数 算法标签 A https://blog.nuoyanli.com/2020/07/14/codeforces-round-655-div-2-a/ 800 简单 B http ...
- Codeforces Round #655 (Div. 2) 题解
A. Omkar and Completion 查看题解 构造 B. Omkar and Last Class of Math 查看题解 数学 C. Omkar and Baseball 查看题解 思 ...
最新文章
- 学生选课管理系统c语言程序报告,c语言课程设计学生选课管理系统实验报告.doc...
- 【bzoj1086】 scoi2005—王室联邦
- 通过企业分布式缓存共享运行时数据
- 火了 2 年的服务网格究竟给微服务带来了什么?
- 《途客圈创业记:不疯魔,不成活》一一1.6 申请助跑计划
- cocos2d-x编程之CCScale9Sprite典型用法
- goto php 源码,GoToPHP
- java. base关键字_C#基础知识之base关键字介绍
- LiveGBS国标GB/T28181流媒体平台华为IPC设备GB35114配置接入说明
- NestJS生成二维码
- usb打印机命令_自己动手不求人 日常打印机故障全知晓
- IDEA社区版下载安装
- Python源码阅读(一)
- autocad r14 win7补丁_AutoCAD R14几个实用补丁
- 2022年前端面试题加答案
- C++开源项目:十行代码15个BUG,你入坑了吗?
- HDU 1867 A + B for you again(KMP)
- 测试工作绝不仅限于点点点
- linux移除硬盘命令,在Linux中在线添加及移除SCSI硬盘方法
- python椭圆曲线加密算法_ECC椭圆曲线加密学习笔记
热门文章
- 和ts一般怎么玩_TS夺冠后马上卖席位?微博电竞欲加盟,以后场场热搜安排上...
- PC微信逆向:两种姿势教你解密数据库文件
- 2023微软校招开始啦,快来找我内推吧
- 游戏服务器 linux windows,游戏服务器用windows还是linux的系统好?
- leetcode 回溯算法 17. 电话号码的字母组合
- 利用Java计算多少次纸才能对折出珠峰高度
- Windows上Emwin的使用
- 远程登录服务器链接外网-启动Teamviewer
- c#对话框,文件打开对话框,
- 用echarts3和worldcloud制作炫酷的字符云图