C. Klee in Solitary Confinement
主要考察对vector的使用
Problem - C - Codeforces
题意概括:给你一段序列,要求你将l到r区间内的数全部加K,这个l和r可以由你任意取。最后求所有可能的方案中众数的最大个数。
我们可以理解为x和x+k只能选择其中之一。当然必须选连续的一段。
然后我们可以知道最后的众数一定是序列a的其中一个,枚举这个数字,然后用vector v[x]储存可以变成x的所有数,也就是x和x-k,然后这个最大众数可以用类似前缀和的方式快速计算出。(就是遍历然后求左边的最大值,详情见代码)
综合复杂度不超过2*n
由于x和x+k只能选择一个,当k≠0时上述算法显然是满足的。但k=0时就同时统计了x和x+k,所以这种情况下的答案要除以二
#include <bits/stdc++.h>
using namespace std;#define go(i, a, b) for (int i = a; i <= b; ++i)const int N = 1e6 + 10, B = 1e6;int n, k, vis[2 * N];
vector<int> v[2 * N];
vector<int> app;void read(int &x) {int f = 1;char c;c = getchar();x = 0;while (!isdigit(c)) {if (c == '-') f = -1;c = getchar();}while (isdigit(c)) {x = x * 10 + c - '0';c = getchar();}x *= f;
}signed main() {// freopen("input.txt", "r", stdin);// freopen("out.txt", "w", stdout);cin >> n >> k;int x;app.reserve(2 * n);go(i, 1, n) {read(x);x += B;if (!vis[x]) {app.push_back(x);vis[x] = 1;}v[x].push_back(x);if (x + k >= 0 && x + k <= 2 * B) {v[x + k].push_back(x);}}int ans = 0;for (auto num : app) {if (!v[num].size()) continue;// cout << num << endl;int addk = 0, nok = 0, mx = 0;int all = 0;for (auto x : v[num]) all += x == num;ans = max(ans, all);for (auto x : v[num]) {addk += x != num;nok += x == num;ans = max(ans, all - nok + addk + mx);mx = max(mx, nok - addk);}}if (k == 0)cout << ans / 2 << endl;elsecout << ans << endl;return 0;
}
C. Klee in Solitary Confinement相关推荐
- C. Klee in Solitary Confinement(2021ICPC-南京)(公式推导)
The 2021 ICPC Asia Nanjing Regional Contest Problem 给出一个长度为n的序列a(1≤n≤1e6,−1e6≤a[i]≤1e61 \leq n \leq ...
- C - Klee in Solitary Confinement--ICPC南京(思维)
题目链接: Klee in Solitary Confinement - Gym 103470C - Virtual Judge 题意: 给定n和k,有一个长度为n的序列,可对序列中任意一段连续区间加 ...
- C-Klee in Solitary Confinement 思维
链接:https://codeforces.com/gym/103470/problem/C 题意:给一个数字序列,可以给一个子区间+k,要求输出众数最多的数量. 题解: 考虑一个区间+k带来的影响, ...
- 2021acm-icpc区域赛(南京)补题笔记
文章目录 前言 题目一览 A.Oops, It's Yesterday Twice More(签到) 题意 思路 M. Windblume Festival(签到) 题意 思路 C. Klee in ...
- 2021 46届icpc 南京
文章目录 A. Oops, It's Yesterday Twice More C. Klee in Solitary Confinement D. Paimon Sorting H. Crystal ...
- 第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京),签到题5题
文章目录 A.Oops, It's Yesterday Twice More M.Windblume Festival C.Klee in Solitary Confinement H.Crystal ...
- 2021icpc南京站
A.Oops, It's Yesterday Twice More 题目链接:https://codeforces.com/gym/103470/problem/A 题意:给定一个n*n的方格,每个方 ...
- 2022/9/28-2022/9/30 21南京C,H,J
1633D - Make Them Equal dp 先求出1转化为每一个数需要的最小次数f[b[i]],问题就转化为容量为k,每件物品的体积为f[b[i]],价值为c[i],01背包,做这题的时候脑 ...
- 2022 1.4 补题
C. Klee in Solitary Confinement 思路: 首先,对于每个数我们要将其存储在数组中,注意向右位移2e6,而不是1e6,因为k的取值也可能是负数. 其次,对于每一 ...
最新文章
- 三个大数据处理框架:Storm,Spark和Samza 介绍比较
- python好学吗mooc中文网-Python全栈工程师
- Exchange 2010通过NAT方式发布到公网
- 一步一步掌握设计模式一(最简单的开始--单例模式^_^)
- python怎么安装bokeh_python怎么安装bokeh
- Educational Codeforces Round 80 (Rated for Div. 2) C. Two Arrays 组合数|dp
- RDS查看Binlog日志内容
- php判断是否为数字_PHP知识点:从'xulei' == 0是否为真谈谈运算符===和==
- css3文档手册chm_你还在使用CHM帮助文档吗?赶快试试Baklib吧
- C#工控上位机实例_HINET智能网关用于三菱FX1S/1N/2N/3S/3G/3UPLC远程编程和上位机监控...
- HDU1598 并查集+枚举
- 台式计算机怎么安装无线信号接收器,电脑wifi接收器怎么用
- “打砖块”H5游戏源码
- 博图如何上载wincc程序_博图导入触摸屏程序 如何通过博图下载触摸屏程序
- html文档用什么浏览器打开,用什么打开HTML文件?
- Android 播放器 mov,適用於Android的頂級5 MOV播放器應用程序,可在移動設備上播放MOV視頻文件...
- 【备忘】大数据最火爆技术spark之王家林2016最新高清视频教程
- .Net再次使用FlashPaper
- 一次算法作业hhhhhh
- 机器学习技术:使用深度学习处理文本