CF1990C Mad MAD Sum 题解
好题。考虑操作一次之后序列的性质,不难发现存在单调性。因为定义为出现至少两次的最大值,而从左到右最大值是可以继承的,所以单升不降。
然后,手玩一下发现之后的操作相当于把整个序列向后移动一位,左边使用 \(0\) 自动补齐。特别的,如果一个元素数量不足 \(2\) 个,会被左边满足要求的最大值替代。根据位置求出每个元素被计算的次数累加即可。
#include <bits/stdc++.h>
using namespace std;
long long t,n,a[300000],c[300000];
int main()
{
scanf("%lld",&t);
while(t--)
{
long long sum=0,mx=0;
scanf("%lld",&n);
for(int i=1;i<=n;i++)c[i]=0;
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]),sum+=a[i];
c[a[i]]++;
if(c[a[i]]>=2)mx=max(mx,a[i]);
a[i]=mx;
}
mx=0;
for(int i=1;i<=n;i++)c[i]=0;
for(int i=1;i<=n;i++)
if(a[i]!=0)
{
c[a[i]]++;
if(c[a[i]]>=2)mx=max(mx,a[i]);
if((a[i]==mx)||(a[i]==a[i+1]))sum+=a[i]*(n-i+1);
else sum+=(a[i]+mx*(n-i));
}
printf("%lld\n",sum);
}
return 0;
}
CF1990C Mad MAD Sum 题解的更多相关文章
- Ural 1248 Sequence Sum 题解
目录 Ural 1248 Sequence Sum 题解 题意 题解 程序 Ural 1248 Sequence Sum 题解 题意 给定\(n\)个用科学计数法表示的实数\((10^{-100}\s ...
- LeetCode Continuous Subarray Sum 题解 同余前缀和 Hash表
文章目录 题意 思路 特殊情况k=0 Source Code 1 Source Code 2 题意 给定一个数组和一个整数k,返回是否存在一个长度至少为2的连续子数组的和为k的倍数. 思路 和上一篇博 ...
- Hdoj 1003.Max Sum 题解
Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum ...
- [LeetCode]Combination Sum题解(DFS)
Combination Sum Given a set of candidate numbers (C) (without duplicates) and a target number (T), f ...
- [LeetCode] Three Sum题解
Three Sum: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? ...
- 01Two Sum题解
Tow Sum 原题概述: Given an array of integers, return indices of the two numbers such that they add up to ...
- 【CF1445D】Divide and Sum 题解
题目链接 题意简介 将一个长度为 2n 的数列平均分为两个子数列 p 和 q 后,p 按从小到大排序,q 按从大到小排序. 排序后,记 p 为 \(\{x_i\}\) ,q 为 \(\{y_i\}\) ...
- CF1779C Least Prefix Sum 题解
CF链接:Least Prefix Sum Luogu链接:Least Prefix Sum $ {\scr \color {CornflowerBlue}{\text{Solution}}} $ 先 ...
- BZOJ3155:Preprefix sum——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3155 最朴素的想法是两棵树状数组,一个记录前缀和,一个记录前缀前缀和,但是第二个我们非常不好修改 ...
- HDU4825:Xor Sum——题解
http://acm.hdu.edu.cn/showproblem.php?pid=4825 Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含 ...
随机推荐
- Unbuntu16搭建Kafka环境总结
1.安装Kafka 环境说明 OS:Ubuntu 16.04 Zookeeper:zookeeper 3.4.5 Kafka:kafka_2.11-0.11.0.0 jdk:jdk8(Kafka启动需 ...
- kettle使用MD5加密增量获取接口数据
kettle使用MD5加密增量获取接口数据 场景介绍: 使用JavaScript组件进行MD5加密得到Http header,调用API接口增量获取接口数据,使用json input组件解析数据入库 ...
- Quill自定义工具栏
<div id="toolbar"> <button class="ql-bold"></button> <butto ...
- Spring 基于注解的AOP面向切面编程
Spring 基于注解的AOP面向切面编程 源码 代码实现 pom.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- Python 的 type 及常用魔法方法(上)
魔法方法是 Python 内置方法, 不需要我们手动调用, 它存在的目的是给 解释器 调用的. 比如我们在写 "1 + 1 " 的时候, 这个 "+ " 就会自 ...
- 人工神经网络(ANN)模型
一.概述 人工神经网络(Artificial Neural Network,ANN),是一种模拟生物神经网络结构和功能的计算模型,它通过大量的神经元相互连接,实现对复杂数据的处理和模式识别.从本质 ...
- 【公众号搬运】React-Native开发鸿蒙NEXT(5)
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 鸿蒙版微信小程序不可用,一文告诉你10分钟修复
鸿蒙版微信小程序不可用,一文告诉你10分钟修复 最近是否有人反馈微信小程序不可用或者界面异常,比如: 而开发者可能比较困惑,我的代码一直都没有更新过,为什么最近突然这么多报障的了? 其实很有可能反馈者 ...
- RBMQ案例三:发布/订阅模式
在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker).在本篇教程中,我们要做的跟之前完全不一样 -- 分发一个消息给多个消费者(consumers).这种模式被称为&quo ...
- MySQL SQL语句书写顺序和执行顺序
目录 SQL语句书写顺序和执行顺序 MySql执行顺序理解 实例 知识扩展 on和where的区别 limit 分页 结束语 Reference SQL语句书写顺序和执行顺序 (7) SELECT ( ...