牛客寒假算法基础集训营1B题
链接:https://ac.nowcoder.com/acm/contest/317/B
来源:牛客网
题目描述
小a非常喜欢204204这个数字,因为′a′+′k′=204′a′+′k′=204。
现在他有一个长度为nn的序列,其中只含有2,0,42,0,4这三种数字
设aiai为序列中第ii个数,你需要重新排列这个数列,使得∑ni=1(ai−ai−1)2∑i=1n(ai−ai−1)2最大(公式的含义是:每个数与前一个数差的平方的和)
注意:我们默认a0=0a0=0
输入描述:
第一行一个整数nn
接下来一行nn个整数,第ii个数表示aiai
输出描述:
输出一个整数,表示∑ni=1(ai−ai−1)2∑i=1n(ai−ai−1)2的最大值
示例1
输入
2
2 4
输出
20
说明
样例1解释:按(4,2)(4,2)排列是最优的,此时sum=(4−0)2+(2−4)2=20sum=(4−0)2+(2−4)2=20
示例2
输入
3
2 0 4
输出
36
说明
样例2解释:按(4,0,2)(4,0,2)排列是最优的,此时sum=(4−0)2+(0−4)2+(2−0)2=36sum=(4−0)2+(0−4)2+(2−0)2=36
示例3
输入
5
2 4 0 2 4
输出
52
备注:
1⩽n⩽1051⩽n⩽105,保证aiai为2/0/42/0/4中的数
官方题解:
输入的序列其实用处不大,因为最终不需要输出方案,我们只需要记录下2/0/4分别出现的次数即可 一个显然的构造策略是首先放置4, 0, 4, 0,直到其中一个用光。 接下来如果4多余,那么可以按4,0,4,0,…,4,2,4,2,…(先4后2)的方法构造 如果0多余,可以按照4,0,4,0 … 4,0,2,0,2 …(先2后0)的方法构造 std中的a数组展示了其中一种最优的构造方案 实际上此题还可以推广到更一般的情况,也就是第一个位置放最大的,第二个位置放最小的,第三个位置放 第二大的以此类推,这种思路写起来也会更简单一些
自己写的时候用暴力一直WA,还是代码能力太差了。
这题就是贪心,先对数据排序,最大的数和最小的数差的平方,然后是第一个不大于最大的数和第一个不小于最小的数差的平方
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[100000];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
a[0]=0;
int k=a[0];
int first=1,last=n;
long long sum=0;
sort(a+1,a+n+1);
while(first<=last)
{
if(first<=last)
{
sum+=pow(a[last]-k,2);
k=a[last];
last-=1;
}
if(first<=last)
{
sum+=pow(a[first]-k,2);
k=a[first];
first+=1;
}
}
cout<<sum<<endl;
}
牛客寒假算法基础集训营1B题的更多相关文章
- 2020牛客寒假算法基础集训营2 J题可以回顾回顾
2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...
- 2020牛客寒假算法基础集训营1 J题可以回顾回顾
2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...
- Applese 的毒气炸弹 G 牛客寒假算法基础集训营4(图论+最小生成树)
链接:https://ac.nowcoder.com/acm/contest/330/G来源:牛客网 Applese 的毒气炸弹 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262 ...
- 牛客寒假算法基础集训营3B 处女座的比赛资格(用拓扑排序解决DAG中的最短路)
链接:https://ac.nowcoder.com/acm/contest/329/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客寒假算法基础集训营4 I题 Applese 的回文串
链接:https://ac.nowcoder.com/acm/contest/330/I 来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如--判断一个字符串是不是回文串. ...
- 牛客寒假算法基础集训营4 I Applese 的回文串
链接:https://ac.nowcoder.com/acm/contest/330/I来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是回文串. ...
- 牛客寒假算法基础集训营2 【处女座与复读机】DP最小编辑距离【模板题】
链接:https://ac.nowcoder.com/acm/contest/327/G来源:牛客网 一天,处女座在牛客算法群里发了一句“我好强啊”,引起无数的复读,可是处女座发现复读之后变成了“处女 ...
- 欧拉函数-gcd-快速幂(牛客寒假算法基础集训营1-D-小a与黄金街道)
题目描述: 链接:https://ac.nowcoder.com/acm/contest/317/D来源:牛客网小a和小b来到了一条布满了黄金的街道上.它们想要带几块黄金回去,然而这里的城管担心他们拿 ...
- 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
随机推荐
- maven工程运行演示
通过maven提供的命令来运行maven工程,体会maven构建工程的优点. (1)运行web工程 进入maven工程目录(当前目录有pom.xml),运行tomcat:run命令 可能出现的问 ...
- java.sql.Date转换
---恢复内容开始--- JAVA 处理时间 - java.sql.Date.java.util.Date与数据库中的Date字段的转换方法,以及util包下的Date类与字符串的相互转换 在java ...
- typeof()与Object.prototype.toString.call()
用typeof方法只能初步判断number string undefined boolean object function symbol这几种初步类型 使用Object.prototype.toSt ...
- Java9,8,7中接口的内容
在Java 9+版本中,接口的内容可以有: 1:成员变量其实是常量格式:[public][static][final] 数据类型 常量名称 =数据值:注意: 常量必须进行赋值,而且一旦赋值不能改变 常 ...
- 实验吧Web-中-简单的sql注入之2
输入union select.order by这些关键字会提示SQLi detected! 说明对于关键字有防护 输入1 union也会提示SQLi detected! 但是如果去掉空格:1union ...
- Windows添加远程访问用户
Windows远程访问 命令:mstsc ------------------------------------------------------------------------------- ...
- 读书笔记 - js高级程序设计 - 第三章 基本概念
启用严格模式 "use strict" 这是一个 pragma 编译指示 让编码意图更清晰 是一个重要原则 5种简单数据类型 Undefined Null Boolean Num ...
- map/vector遍历删除
map遍历删除 map<int, vector<int>>::iterator it = g_map.begin(); for (; it != g_map.end(); /* ...
- Ubuntu 不插优盘无法启动
ubuntu安装成功后只能通过优盘启动 不插优盘就无法启动 启动后拔掉优盘没问题 难道动过优盘安装的 2013-06-16 20:01 提问者悬赏:5分 | 理电池 | 分类:电脑外接设备 | 浏览2 ...
- 未能加载文件或程序集“MySql.Data”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
未能加载文件或程序集“MySql.Data”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040) 说明: 执行当前 Web 请求期间,出现未 ...