[PA2021] Ranking sklepw internetowych

news/2024/10/24 21:23:40/文章来源:https://www.cnblogs.com/YzaCsp/p/18500418

算法

显然可知, 最大的权值显然是 \(2 \times n + 1\)
我们也可以发现取最大值时序列的特征:中位数大于 $\frac{n}{2} $ , 且包括整个大序列所有大于中位数的整数以及相等个数的小于中位数的数

所以枚举中位数, 找区间 \([L, R]\) 使得 \(i\)\(n\) 的整数都在区间内, 并且要求这个区间的长度是 \(i\) , 其中 \(i \in \left[{\left\lfloor\frac{n}{2}\right\rfloor, n}\right]\) , 这是好实现的

  • 这个序列可能已经不符合要求, 即目前长度超过目标长度
    此时没有贡献

  • 这个序列可能缺少元素
    这时可以向左右扩展

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1000005;
int n;
int p[N];
int L, R;
ll ans;void chkmax(int &a, int b) { if (a < b) a = b; }
void chkmin(int &a, int b) { if (a > b) a = b; }int main() {scanf("%d", &n), L = n, R = 0;for (int i = 1, x; i <= n; ++i) scanf("%d", &x), p[x] = i;for (int i = 1; i <= n; ++i) {chkmin(L, p[n - (i / 2)]), chkmax(R, p[n - (i / 2)]);int len = R - L + 1;if (len <= i) {int l, r;if (R >= i) l = R - i + 1, r = R; else l = 1, r = i;ans += min(L - l, n - r) + 1;}}printf("%d %lld", 2 * n + 1, ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/821363.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA如何更改背景桌面图片

前言 我们在使用IDEA开发Java应用时,经常对着屏幕,有时候也感觉有点枯燥,这时候,就可以设置一个背景图片来缓解一下,比如说设置一张风景图片,或者设置一个美女图片,哈哈哈。 那么,我们可以如何设置呢? 如何设置 首先,我们打开设置面板。然后,我们点击下【Appearance…

灰色代码部分:要是输入名字列表,又能输出结果,但是空列表的时候就输出不了?

大家好,我是Python进阶者。 一、前言 前几天在Python白银交流群【Aciel】问了一个Python基础的问题,问题如下:灰色代码部分:要是输入名字列表,又能输出结果,但是空列表的时候就输出不了?二、实现过程 这里【瑜亮老师】给了一个指导,具体如下所示:@Aciel 循环 for nam…

assembly2

汇编2 寄存器(不同架构不同) 8086中寄存器均为16位,可存放两个字节(1byte=8bit)。 通用寄存器AX,BX,CX,DX用来存储一般性的数据,被称为通用寄存器。二进制数据在寄存器中是低位存在低地址,高位存在高地址。也可将一个寄存器分为H,L(高8位低8位)来做8位存储器。字在寄存器…

shctf[Week3] 小小cms

看到首页面 了解到YzmCMS的版本,上网搜搜这个版本存在的漏洞 发现存在任意函数调用RCE的漏洞 https://blog.csdn.net/shelter1234567/article/details/138524342 根据文章直接抄payload,进入/pay/index/pay_callback目录下下面cat /flag即可,最终的payload为 out_trade_no[0…

数据采集与融合技术实践作业二

作业①:7日天气预报爬取 1. 作业代码与实现步骤 我们将在中国气象网爬取北京、上海、广州的7日天气预报,并将数据保存到数据库中。以下是实现步骤。 步骤详解打开中国天气网:在浏览器中访问中国天气网。搜索城市:输入“北京”并打开其天气页面。检查网页结构:使用浏览器的…

clickhouse安装部署使用

一、安装 下载地址https://packages.clickhouse.com/rpm/stable/上传文件到Linux中开始安装1、进入到文件所在目录cd /usr/local/soft/clickhouse-rpms/2、使用rpm命令安装sudo rpm -ivh *.rpm3、查看状态systemctl status clickhouse-server4、启动服务systemctl start clickh…

Clickhouse的安装

一、官网下载 下载地址: https://packages.clickhouse.com/rpm/stable/ 一共需要下载这下面四个 注:一个页面没有的需要点击next进入下一个界面二、下载之后使用Xterminal打开所需要建立连接的虚拟机出现如下界面之后说明连接成功三、创建一个自己的文件夹,将先前下好的rpm文…

Oracle 排序

在Oracle中,使用 ORDER BY 语法按字符串进行排序 ASC或DESC关键字:指定升序或降序排序,默认情况下,排序是升序的。 NULLS FIRST 或 NULLS LAST 关键字:指定对空值的处理方式,默认情况下,空值排在最后。 -- 按升序排序,空值排在最后 SELECT column_name FROM table_name…

代码随想录算法训练营第24天(补第12天)| 递归遍历,迭代遍历,统一迭代

前置知识 二叉树的定义: struct BNode{int val;BNode* lchild;BNode* rchild;BNode():lchild(NULL),rchild(NULL){}BNode(int val){val=val;lchild=rchild=NULL;} };递归遍历文章链接:https://programmercarl.com/二叉树的递归遍历.html#思路 题目链接:https://leetcode.cn/…

20222403 2024-2025-1 《网络与系统攻防技术》实验三实验报告

1. 实验内容 1.1.实践内容 (1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程(2)通过组合应用各种技术实现恶意代码免杀 如果成功实现了免杀的,简单语…

Camunda中的Execution listeners和Task listeners

在Camunda中大多数节点元素都可以设置执行监听器(Execution listeners),例如事件、顺序流、用户任务、服务任务和网关。其中用户任务除了可以设置执行监听器,还可以设置独有的用户任务监听器,相比于执行监听器,用户任务监听器可以设置更加细粒度的事件类型。 下面针对执行…

AMD Ryzen 5700X黑苹果运行Docker和Virtualization(虚拟化)

最近把我的AMD Ryzen黑苹果系统升级到Sequoia 15.01 发现virtualbox不能用了,遂重新分区又安装了一个Sonoma 14.7AMD Ryzen Run Virtualization展示 Virtualization Limit系统要求: BigSur <= 当前运行系统版本 <= Sonoma 虚拟化软件: virtualbox 6.1.50 安全要求:关…