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 longprintf 参数的类型问题。

22 October in 614的更多相关文章

  1. 26 October in 614

    Practice tower 有 \(N\,(2\le N\le 600000)\) 块砖,要搭一个 \(N\) 层的塔,要求:如果砖 \(A\) 在砖 \(B\) 上面,那么 \(A\) 不能比 \ ...

  2. 23-25 October in 614

    Practice sort 给定一系列形如 \(A<B\) 的不等关系,判断前 \(k\) 个不等关系是否即可确定 \(n\) 个元素之间的大小顺序:如果不可确定,判断前 \(k\) 个不等关系 ...

  3. 蓝牙Bluetooth技术手册规范下载

    [背景] 之前就已经整理和转帖了和蓝牙技术相关的一些内容: [资源下载]bluetooth 协议 spec specification 蓝牙1.1.蓝牙1.2.蓝牙2.0(蓝牙2.0+EDR)区别 但 ...

  4. 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 ...

  5. android-包签名

    android-包签名 应用能在Android 系统上安装必须是经过有私有key的证书数据签名.Android系统通过证书确定应用的作者,和与应用建立信任关系.证书不会用于控制应用的安装.证书不需要权 ...

  6. 网络-04-端口号-linux端口详解大全--TCP注册端口号大全

    # John Murphy <john.m.murphy&mci.com>afs3-fileserver 7000/tcp file server itselfafs3-files ...

  7. [官网]Linux版本历史

    This is a list of links to every changelog. https://kernelnewbies.org/LinuxVersions 总结一下 2.6.x 存在了八年 ...

  8. 蓝牙Bluetooth技术手册规范下载【转】

    蓝牙Bluetooth技术手册规范下载 http://www.crifan.com/summary_bluetooth_specification_download/ [背景] 之前就已经整理和转帖了 ...

  9. Patrick Hughes - 错觉3D雕塑艺术

    Pictures Patrick Hughes (artist) From Wikipedia, the free encyclopedia Patrick Hughes. Leaning on a ...

随机推荐

  1. Vagrant 手册之网络 - 概述及基本用法

    原文地址 - 概述 原文地址 - 基本用法 为了访问创建的 Vagrant 环境,Vagrant 为端口转发.连接公共网络.创建私有网络等功能暴露了一些高层网络选项. 高层网络选项用于提供可以跨 pr ...

  2. 边界安全 - CDN/DMZ/网络协议

    CDN   工具 - LuManager CDN DMZ 网络协议 - DNS Win7下搭建DNS服务器 - BIND 根域 顶级域(即相关国家域名管理机构的数据库,如中国的CNNIC) com n ...

  3. 关于VMware中的几个网络模式

    直接参考别人的: 写的已经很细致了: http://blog.csdn.net/yaoyaowugui/article/details/7422388 关键是看别人的几张图

  4. [Linux] 026 光盘 yum 源搭建

    光盘 yum 搭建步骤 (1) 挂载光盘 $ mount /dev/cdrom /mnt/cdrom/ (2) 让网络 yum 源文件失效 $ cd /etc/yum.repos.d/ $ mv Ce ...

  5. webpack的code spliting与chunks

    webpack的code spliting与chunks :https://blog.csdn.net/liuqi332922337/article/details/53020992

  6. GnuTLS 3.3.3 remote memory corruption(CVE-2014-3466)

    Buffer overflow in the read_server_hello function in lib/gnutls_handshake.c in GnuTLS before 3.1.25, ...

  7. bzoj2176 Strange string(字符串最小表示法)

    Time Limit: 10 Sec  Memory Limit: 259 MB 给定一个字符串S = {S1, S2, S3 … Sn}, 如果在串SS中, 子串T(|T| = n)为所有长度为n的 ...

  8. Vue打包后访问静态资源路径问题

    Vue介绍中static文件夹里放的是静态资源目录,如图片.字体等. 我们发现运行npm run start后本地图片路径是没问题的,但是打包上传后会怎么样呢? 我们知道,执行npm run buil ...

  9. DOM IE 兼容性 I

    IE8事件模型和DOM事件模型有何不同?如何处理DOM事件模型与IE8事件模型的兼容性? 1 事件模型不一样 DOM的浏览器兼容性问题:事件模型   3个阶段            01 外向内:捕获 ...

  10. [烧脑时刻]EL表达式1分钟完事

    一天,程序员A问我,我们比比谁的知识点多,反应快.我回答:那就看谁最快用EL表达式的显示在页面上吧. 话不多说,计时开始. 项目的结构如上,大概就是一个Family的JavaBean,一个jsp页面, ...