codeforces D. Cyclic MEX

思路

在这里插入图片描述

  • 手模发现把第一个 x x x 移到最末尾时,进入队列吐出大于等于 x x x 的,保留小于 x x x 的。模拟此过程。
  • 如果队列里存 n n n 个数的话,那么时间复杂度达到 n 2 n^2 n2 不可取。所以队列存储 ( x , f x ) (x,\;f_x) (x,fx) 大小及其频率/次数。

Think Twice, Code Once
根据代码体会模拟过程

#include <bits/stdc++.h>
#define il inline
#define get getchar
#define put putchar
#define is isdigit
#define int long long
#define dfor(i,a,b) for(int i=a;i<=b;++i)
#define dforr(i,a,b) for(int i=a;i>=b;--i)
#define dforn(i,a,b) for(int i=a;i<=b;++i,put(10))
#define mem(a,b) memset(a,b,sizeof a)
#define memc(a,b) memcpy(a,b,sizeof a)
#define pr 114514191981
#define gg(a) cout<<a,put(32)
#define INF 0x7fffffff
#define tt(x) cout<<x<<'\n'
#define endl '\n'
#define ls i<<1
#define rs i<<1|1
#define la(r) tr[r].ch[0]
#define ra(r) tr[r].ch[1]
#define lowbit(x) (x&-x)
#define ct cin.tie(nullptr),ios_base::sync_with_stdio(false)
using namespace std;
typedef unsigned int ull;
typedef pair<int, int> pii;
int read(void) {int x=0,f=1;char c=get();while(!is(c)) (f=c==45?-1:1),c=get();while(is(c)) x=(x<<1)+(x<<3)+(c^48),c=get();return x*f;
}
void write(int x) {if (x < 0) x = -x, put(45);if (x > 9) write(x / 10);put((x % 10) ^ 48);
}
#define writeln(a) write(a), put(10)
#define writesp(a) write(a), put(32)
#define writessp(a) put(32), write(a)
const int N = 1e6 + 10, M = 1e5 + 10, SN = 1e3 + 10, mod = 998244353;
signed main() {int T = read();while (T--) {int n = read();vector<int> a(n + 1);for (int i = 1; i <= n; ++i) a[i] = read();deque<pii> dq;vector<int> f(n + 1);int sum = 0, Min = 0;for (int i = 1; i <= n; ++i) {++f[a[i]];while (f[Min]) ++Min;dq.push_back({Min, 1});sum += Min;}int ans = sum;for (int i = 1; i < n; ++i) {pii t = {a[i], 0};sum -= dq.front().first;--dq.front().second;if (!dq.front().second) dq.pop_front();while (!dq.empty() && a[i] <= dq.back().first) {sum -= dq.back().first * dq.back().second;t.second += dq.back().second;dq.pop_back();}sum += t.first * t.second + n;dq.push_back(t), dq.push_back({n, 1});ans = max(ans, sum);}writeln(ans);}return 0;
}

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

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

相关文章

✺ch4——管理3D图形数据

目录 缓冲区和顶点属性统一变量顶点属性插值应用变换矩阵一个3D立方体示例渲染一个对象的多个副本——实例化在同一场景中渲染多个不同模型矩阵栈应对“Z冲突”伪影图元的其他选项性能优先的编程方法 使用 OpenGL 渲染 3D 图形通常需要将若干数据集发送给 OpenGL 着色器管线。举…

中小型企业网络综合实战案例分享

实验背景 某公司总部在厦门&#xff0c;北京、上海都有分部&#xff0c;网络结构如图所示&#xff1a; 一、网络连接描述&#xff1a; 厦门总部&#xff1a;内部网络使用SW1、SW2、SW3三台交换机&#xff0c;SW1为作为核心交换机&#xff0c;SW2、SW3作为接入层交换机&#x…

python识别增强静脉清晰度 opencv-python图像处理案例

一.任务说明 用python实现静脉清晰度提升。 二.代码实现 import cv2 import numpy as npdef enhance_blood_vessels(image):# 调整图像对比度和亮度enhanced_image cv2.convertScaleAbs(image, alpha0.5, beta40)# 应用CLAHE&#xff08;对比度受限的自适应直方图均衡化&…

基于深度学习的森林火焰烟雾检测系统(含UI界面,Python代码,数据集、yolov5)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov5 yolov5主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM、CA等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主…

安装centos 7及配置网卡、连接Xshell

1.点击新建虚拟机 2.默认自定义 3.默认选择17版本的 4.选择稍后安装操作系统 5.选择Linux 6.选择安装目录和自定义名称&#xff0c;安装时尽量新建一个文件夹 7.根据电脑配置&#xff0c;自定义处理器大小&#xff0c;这里是建议配置 8.最少2个G 9.使用NAT 注&#xff1a; VMn…

AI分布式训练:DDP (数据并行)技术详解与实战

编者按&#xff1a; 如今传统的单机单卡模式已经无法满足超大模型进行训练的要求&#xff0c;如何更好地、更轻松地利用多个 GPU 资源进行模型训练成为了人工智能领域的热门话题。 我们今天为大家带来的这篇文章详细介绍了一种名为 DDP(Distributed Data Parallel)的并行训练技…

秒搜全网闲鱼商品!一键实现商品详情关键词搜索的酷炫电商API接口!

在如今的电商时代&#xff0c;商品搜索已经成为一个非常重要的功能。当用户在电商平台上浏览商品时&#xff0c;如果能够快速而准确地搜索到自己感兴趣的商品&#xff0c;无疑会提升用户的购物体验&#xff0c;进而增加平台的销售额。联讯数据将介绍一款名为“闲鱼商品秒搜API”…

如何解决apt update 时遇到的问题

apt update 时报错 Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease Err:2 http://us.archive.ubuntu.com/ubuntu bionic InRelease 302 Found [IP: 91.189.91.39 80] Err:3 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease 302 Found [I…

WX Backup - 免费微信聊天记录备份导出与查看工具 (可提取图片/视频/语音)

微信绝对是一个让人爱恨交织的 APP&#xff0c;它在国内几乎完全占据了人们的社交以及生活的方方面面&#xff0c;但腾讯却并没有为微信提供好用的「聊天记录」备份导出和查看的功能。 WX Backup 是一款完全免费的微信聊天记录备份导出工具&#xff0c;支持 Windows 和 Mac&…

数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

目录 1、需求分析 1 1.1 数据需求描述 1 1.2 系统功能需求 3 1.3 其他性能需求 4 2、概念结构设计 4 2.1 局部E-R图 4 2.2 全局E-R图 5 2.3 优化E-R图 6 3、逻辑结构设计 6 3.1 关系模式设计 6 3.2 数据类型定义 6 3.3 关系模式的优化 8 4、物理结构设计 9 4.1 聚…

克服端口顺序影响,使用PCAN实现固定设备ID/通道分配

来源&#xff1a;虹科智能互联 虹科干货 | 克服端口顺序影响&#xff0c;使用PCAN实现固定设备ID/通道分配 原文链接&#xff1a;https://mp.weixin.qq.com/s/Ik2fp9sWyI9MiQOOHO1dCA 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 导读 多设备协同工作是常见的需求…

ROS-分布式通信

ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式&#xff0c;任何节点可能随时需要与任何其他节点进行通信。 因此&#xff0c;ROS对网络配置有某些要求&#xff1a; 所有端口上的所有机器之间必须有完整的双向连接。每…