22 October in 614
Contest
A. defile
struct 自定义排序。按照题意抽象成模型模拟就可以了。
自定义排序核心代码:
struct node {
int x, id;
} d[1000003];
bool cmp1(const node& a, const node& b) {
return a.x < b.x;
}
bool cmp2(const node& a, const node& b) {
return a.id < b.id;
}
坑点:注意排序函数调用时参数问题。sort 的区间应该是 \([l,r)\),左闭右开。所以例如排序 a 到 b 之间的元素,应写作:
sort(d+a, d+b+1); // 包含 a,不包含 b+1
B. mute
贪心求最优解。思路类似于 [[雷达安装]]。
C. queue
给定正整数 \(N\),对于 \(N\) 的所有排列,求使排列中每两个相邻元素的数值差的绝对值的和的最大值。即求最大化 \(\sum\limits_{i=1}^{N-1}\lvert a_i-a_{i+1}\rvert\)。
我们考虑 \(N=10\) 的情况。为使答案尽可能大,我们应该尽量远离相差较小的两个数字,把相差较大的两个数字放在一起。
容易得出,数列 \(1,10,2,9,3,8,4,7,5,6\) 的答案为 \(45\),不是最优解。
我们在数列某处放入 \(10\)。显然,\(1\) 和 \(2\) 应该放在 \(10\) 的两侧,顺序任意。
而此时不应该立即填入 \(3,4\),而是填入 \(9,8\),以保证大小分布的均匀。
同理,填入 \(3,4,7,6,5\) 后数列如下:\(6,3,8,1,10,2,9,4,7,5\),答案为 \(49\)。
注意其中每两个数字的填入是随意的,左右填入相反不影响答案,但是为了计算方便,这里统一为左边填入较小的数字、右边填入较大的数字。\(5\) 作为独立的数字,放在最后面(比放在前面答案大)。
此时可作出差分数组 \(2,3,5,7,9,8,7,5,3\)。
观察可得,对于偶数 \(N\) 的排列,和的最大值为 \(2+2(3+5+7+\cdots+N-3)+(N-2)+(N-1)=2N-1+\displaystyle\frac{N(N-4)}{2}\)。
同理,当 \(N\) 为奇数时,和的最大值为 \(2(2+4+6+\cdots+N-3)+(N-2)+(N-1)=2N-3+\displaystyle\frac{(N-1)(N-3)}{2}\)。
特别地,当 \(N=1\) 时,最大值为 \(0\) 而不是 \(-1\)。(坑点)
综上。
注意开 long long 时 printf 参数的类型问题。
22 October in 614的更多相关文章
- 26 October in 614
Practice tower 有 \(N\,(2\le N\le 600000)\) 块砖,要搭一个 \(N\) 层的塔,要求:如果砖 \(A\) 在砖 \(B\) 上面,那么 \(A\) 不能比 \ ...
- 23-25 October in 614
Practice sort 给定一系列形如 \(A<B\) 的不等关系,判断前 \(k\) 个不等关系是否即可确定 \(n\) 个元素之间的大小顺序:如果不可确定,判断前 \(k\) 个不等关系 ...
- 蓝牙Bluetooth技术手册规范下载
[背景] 之前就已经整理和转帖了和蓝牙技术相关的一些内容: [资源下载]bluetooth 协议 spec specification 蓝牙1.1.蓝牙1.2.蓝牙2.0(蓝牙2.0+EDR)区别 但 ...
- An Implementation of Double-Array Trie
Contents What is Trie? What Does It Take to Implement a Trie? Tripple-Array Trie Double-Array Trie S ...
- android-包签名
android-包签名 应用能在Android 系统上安装必须是经过有私有key的证书数据签名.Android系统通过证书确定应用的作者,和与应用建立信任关系.证书不会用于控制应用的安装.证书不需要权 ...
- 网络-04-端口号-linux端口详解大全--TCP注册端口号大全
# John Murphy <john.m.murphy&mci.com>afs3-fileserver 7000/tcp file server itselfafs3-files ...
- [官网]Linux版本历史
This is a list of links to every changelog. https://kernelnewbies.org/LinuxVersions 总结一下 2.6.x 存在了八年 ...
- 蓝牙Bluetooth技术手册规范下载【转】
蓝牙Bluetooth技术手册规范下载 http://www.crifan.com/summary_bluetooth_specification_download/ [背景] 之前就已经整理和转帖了 ...
- Patrick Hughes - 错觉3D雕塑艺术
Pictures Patrick Hughes (artist) From Wikipedia, the free encyclopedia Patrick Hughes. Leaning on a ...
随机推荐
- mariadb(四)连接查询,视图,事物,索引,外键
一.连接查询 1)进入自己创建的zz数据库 2)创建学生表: create table students ( id int unsigned not null auto_increment prima ...
- Vagrant 手册之 box - 概述
原文地址 box 是 Vagrant 环境中使用的包格式.box 可以在 Vagrant 支持的所有平台上被任何人使用,从而提供相同的工作环境. vagrant box 工具提供了管理 box 的所有 ...
- 【MM系列】SAP ABAP 在选择画面显示输出结果
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 在选择画面显示 ...
- Codeforces 1197 E (dp+sort+二分) (Rust)
原题链接 2300分 大意 俄罗斯套娃,每个有内容半径in和外围半径out in_i<out_i 如果 in_i >= out_j ,那么j可以放在i内 定义残留空间 = 一列嵌套的套娃 ...
- [BZOJ3622] 已经没有什么好害怕的了(dp+容斥)
Description: 有两个数组a和b,两两配对,求 \(a_i>b_i\) 的配对比 \(b_i>a_i\) 的配对多 \(k\) 个的方案数 \(k\le n\le 2000\ ...
- #python# error:UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 30: ordinal not in range(256)
headers={ 'Referer':'https://www.lagou.com/jobs/lis-rds=&fromSearch=true&suginput=', 'User-A ...
- MS DOS 常用命令整理
最近在开发用到一些dos下的一些指令,还有bat文件,特别是bat的便捷性让我在生活和开发过程中好好使用. dos指令: java com.pdcss.util.JacobService > D ...
- 【JAVA】java中的length和length()
参考链接: 你注意到Java中的length和length()了吗?外加一个size() java中的求长度length有时有小括号,有时没有小括号,到底什么时候该加小括号呢? 总结: Java中St ...
- 2018-2-13-win10-uwp-BadgeLogo-颜色
title author date CreateTime categories win10 uwp BadgeLogo 颜色 lindexi 2018-2-13 17:23:3 +0800 2018- ...
- python关键字global和nonlocal总结
函数中使用全局变量 a = 100 b = 200 def func(): def sub(): return b return a + b + sub() 执行fun()后返回值为:500 a, b ...