【16届蓝桥杯寒假刷题营】第2期DAY5

5.变变数组 - 蓝桥云课

给定一个长度为 n 的整数数组 A,A 中第 i 个元素为 Ai​(1≤i≤n),你只能在 A 中选择一个元素 a,将 A 中所有数值等于 a 的元素变为 a2,请问变化后 A 中所有元素和的最大为多少。

输入格式

输入共 2 行。

第一行包含一个整数 n,表示整数数组 A 中元素的个数。

第二行包含 n 个整数,表示整数数组 A 中各个元素的值。

输出格式

输出共一行,包含一个整数,表示变换后 A 中所有元素和的最大值。

样例输入

复制代码
5
-3 1 0 2 2

样例输出

复制代码
14

评测数据规模

对于所有评测数据,1≤n≤1e5,−1e4≤Ai​≤1e4。

思路如下:

相当于暴力,先计算未被改变的总和,之后再分别计算改变这个数的总和,求出最大。

代码如下:

复制代码
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef long long ll;
const ll N = 1e5+10;
ll n; 
ll maxn = -1e9;
ll sum;
int main(void)
{
	map <int,int> mp;
	cin >> n;
	for(ll i = 1 ; i <= n ; i++)
	{
		ll x;
		cin >> x;
		mp[x]++;
		sum += x;//先计算未改变的总和 
	}
	for(auto it = mp.begin() ; it != mp.end() ; it++) 
	{
		ll key = it->first;
		ll num = it->second; 
		maxn = max(maxn,sum - num*key + num*key*key);
	}
	cout << maxn;
	return 0;
}
相关推荐
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧17 小时前
C++学习:基础知识的掌握
c++·visualstudio
江畔柳前堤17 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore18 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考20 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX20 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面21 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号21 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽21 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI21 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
C++ 老炮儿的技术栈1 天前
从 Qt Designer 属性编辑器的层级可以看到继承链
c语言·数据库·c++·qt·sqlite·visual studio