牛客网暑期ACM多校训练营(第四场)G Maximum Mode(思维)
链接:
https://www.nowcoder.com/login?callBack=%2Facm%2Fcontest%2F142%2FG
题意:
给定n个数, 要求删去恰好m个数后的最大总数是多少。
分析:
要使一个数是众数, 只要比他大的数的数量都比自己小就行。
预处理出全部出现次数的最大数(例如, 出现3次最大的是1,出现2次最大的是2等等)。
然后从最大的次数开始枚举, 只关注该次数和比该次数大的数(前缀和),求出每次删的minDel即可。
#include <bits/stdc++.h> using namespace std; const int maxN = 1e5 + 7; map<int, int> cnt, Max, t; int pre[maxN]; int n, m; int judge(){int sum = 0, k = 0, ans = -1;for(auto it = Max.rbegin(); it != Max.rend(); it++){int a = it -> first, b = it -> second; //a是次数, b是该次数下最大的数k += t[a];//k是当前有多少种数sum += a * t[a]; //只考虑自己和次数比自己大的数的总数int minDel = sum - (a-1) * k - 1; //要减去的数if(minDel <= m){//只要该数小于等于m即可, 剩下的m - minDel随便减ans = max(ans, b);}}return ans; } int main() {int T;scanf("%d", &T);while(T--) {cnt.clear();Max.clear();t.clear();scanf("%d %d", &n, &m);for(int i = 0; i < n; i++) {int num;scanf("%d", &num);cnt[num]++;}for(auto it : cnt){int a = it.first, b = it.second;Max[b] = max(Max[b], a);t[b]++;}printf("%d\n", judge());} }
转载于:https://www.cnblogs.com/Jadon97/p/9438672.html
牛客网暑期ACM多校训练营(第四场)G Maximum Mode(思维)相关推荐
- 牛客网暑期ACM多校训练营(第九场)
牛客网暑期ACM多校训练营(第九场) A. Circulant Matrix 做法:看到下标 \(xor\) 这种情况就想 \(FWT\),可是半天没思路,于是放弃了..其实这个 \(n\) 疯狂暗示 ...
- 牛客网暑期ACM多校训练营(第一场)
牛客网暑期ACM多校训练营(第一场) A. Monotonic Matrix 考虑0和1的分界线,1和2的分界线,发现问题可以转化为两条不互相穿过的路径的方案数(可重叠),题解的做法就是把一条路径斜着 ...
- 牛客网暑期ACM多校训练营(第二场): H. travel(树形线头DP)
链接:https://ac.nowcoder.com/acm/contest/140/H 来源:牛客网 题目描述 White Cloud has a tree with n nodes.The roo ...
- 牛客网暑期ACM多校训练营(第三场): E. Sort String(KMP)
链接:https://www.nowcoder.com/acm/contest/141/E 来源:牛客网 题目描述 Eddy likes to play with string which is a ...
- 牛客网暑期ACM多校训练营(第三场): C. Shuffle Cards(splay)
链接:https://www.nowcoder.com/acm/contest/141/C 来源:牛客网 题目描述 Eddy likes to play cards game since there ...
- 牛客网暑期ACM多校训练营(第二场)A .run
链接:https://www.nowcoder.com/acm/contest/140/A 来源:牛客网 题目描述 White Cloud is exercising in the playgroun ...
- 牛客网暑期ACM多校训练营(第一场) J (莫队算法)
题目链接:https://www.nowcoder.com/acm/contest/139/J 题目大意:给一个序列,进行q次查询,问1~l和r~n中有多少个不同的数字 题目思路:之前只是听说过莫队算 ...
- 牛客网暑期ACM多校训练营(第二场)J farm (二维树状数组)
题目链接: https://www.nowcoder.com/acm/contest/140/J 思路: 都写在代码注释里了,非常好懂.. for_each函数可以去看一下,遍历起vector数组比较 ...
- 牛客网 暑期ACM多校训练营(第一场)J.Different Integers-区间两侧不同数字的个数-离线树状数组 or 可持久化线段树(主席树)...
J.Different Integers 题意就是给你l,r,问你在区间两侧的[1,l]和[r,n]中,不同数的个数. 两种思路: 1.将数组长度扩大两倍,for(int i=n+1;i<=2* ...
- 牛客网暑期ACM多校训练营(第二场)D-money (dp)
题目链接 题意 一共有n件商店,每个商店买卖东西的价格和不同,白兔想用差价挣钱,每次只能携带一种物品,问白兔最多赚多少的钱,和对应的交易次数 AC 两个变量分别记录当前买东西和买东西的剩余财富,财富越 ...
最新文章
- html中空标签的有什么,HTML常用标签,什么是空标签和可替换标签
- 使用Innobackupex快速搭建(修复)MySQL主从架构
- log4j.properties配置总结
- (单源最短路径)一文搞懂dijkstra算法
- 代理模式【介绍、静态代理、动态代理、入门、应用】
- 【GitHub教程】如何使用Eclipse将本地项目上传到github
- 迁移学习 迁移参数_迁移学习简介
- M​y​E​c​l​i​p​s​e​下​反​编​译​插​件​安​装​使​用​方​法
- 是未来的风口还是无声的战争,中国的saas平台究竟能不能做起来?
- linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?
- u3d一个GameObject绑定两个AudioSource
- Powershell进阶学习(6) 部署 Windows PowerShell Web 访问
- webpack 了解
- 如何配置和使用Tomcat访问日志
- 【刷题】BZOJ 1003 [ZJOI2006]物流运输
- 文件拷贝--单一文件过大
- 网站锦囊(逐渐更新中)
- [转载] 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解
- “INNER JOIN”和“OUTER JOIN”有什么区别?
- 超全面!用户生命周期分析攻略
热门文章
- ajax send()的作用_AJAX(Asynchronous JavaScript And XML)
- android a20 i2c 通信,Android程序运行分析——中等复杂程度的NTAG I2C Demo为例(二)...
- qt编写的android菜单,Qt for Android实现与webview的交互
- git 设置用户只需要输入一次账号密码
- kubernetes视频教程笔记 (11)-pod容器生命周期、Init容器
- pdf文字无法复制怎么办?unlock解密pdf
- Instantiation of Chaincode using Fabric Node manifest for hyperledger/fabric-ccenv:latest not found
- SpringBoot 集成ElasticSearch(二)分页查询
- Linux学习(2)常用的命令
- 【Filter】基础知识