这道题非常好。其思想类似于 $O(n \log n)$ 求最长上升子序列的算法。

hint:考虑固定操作次数 $o$,$k$ 最大可取到多少?

    int n;
scan(n);
vi a(n);
scan(a);
// appearance[i]: i 出现的次数
vi appearance(n + 1);
FOR (x, a) {
appearance[x]++;
}
// sum[i]:出现不超过i次的数,出现的总次数
vi sum(n + 1);
FOR (x, appearance) {
sum[x] += x;
}
rng (i, 2, n + 1) {
sum[i] += sum[i - 1];
} vi cnt(n + 1);
FOR (x, appearance) {
cnt[x]++;
}
// cnt[i]:出现次数大于等于i的数字的个数
down (i, n - 1, 1) {
cnt[i] += cnt[i + 1];
}
// max_k[i]: 固定操作次数i,k最大可取到多少
vi max_k(n + 2);
max_k[0] = n;
max_k[n + 1] = 0;
// max_k[] 单调不增,max_k[i] >= max_k[i + 1]
rng (i, 1, n + 1) {
max_k[i] = cnt[i] + sum[i - 1] / i;
} down (i, n, 0) {
rng (j, max_k[i + 1] + 1, max_k[i] + 1) {
println(i);
}
}

最新文章

  1. thinkphp-二次开发1
  2. C语言末
  3. C++学习笔记34:泛型编程拓展3
  4. JavaScript 基础第三天
  5. Hibernate正向工程(实体类-->数据库)
  6. 巧妙使用checkbox制作纯css动态导航栏
  7. Windows10 安装配置IIS,并将程序发布到服务器上
  8. Super Jumping! Jumping! Jumping!(hdu 1087 LIS变形)
  9. JVM-Java程序性能监控-初级篇
  10. 一个简单小巧的CSV读取类
  11. Docker学习笔记 - Docker的简介
  12. 解决win环境下访问本机虚拟机中centos7 ftp服务器的问题
  13. cocos creator主程入门教程(二)—— 弹窗管理
  14. Docker自制CentOS镜像
  15. 51 Nod 1079 中国剩余定理(孙子定理)NOTE:互质情况
  16. C#属性、自动属性、字段之间的区别和理解
  17. Natural Language Generation/Abstractive Summarization
  18. JS从数组中随机取出几个数组元素的方法
  19. 20155226《网络攻防》 Exp5 MSF基础应用
  20. 005 RequestMapping_HiddenHttpMethodFilter 过滤器

热门文章

  1. 【原创】谈一个数学教育专业的IT职业生涯
  2. 【CUDA 基础】3.2 理解线程束执行的本质(Part I)
  3. .NET(c#) 移动APP开发平台 - Smobiler(1)
  4. Django-rbac权限
  5. (70)一篇文章带你熟悉 TCP/IP 协议
  6. Android中定义广播监听,其他页面发送
  7. JVM-GC算法(三)-分代收集算法
  8. Mac安装软件提示文件损坏
  9. ssh 远程登录错误
  10. leetcode-hard-array-41. First Missing Positive-NO