http://codeforces.com/contest/1065/problem/C

题意:给你n个高度分别为a[i]的塔,每次可以横着切一刀,切掉不多于k个塔,问最少切多少刀才能把塔切的都一样高(k>=n)

高度和n都在2*10^5以内

思路:既然高度在20w以内嘛 那就按高度模拟惹 然鹅该怎么模拟着实头疼了一下下

用a[i] 记录高度为i-1时,有多少个塔有高度,如果当前高度为i-1时有a[i]个塔,并且a[i]<k,那么可以去考虑下一层

用sum记录上一层之前还有多少没切,比较sum+a[i]和k的大小可以决定切不切,切的话就cnt++,剩的sum就是a[i](因为是sum+a[i]>k时切的

然后就是a[i]怎么算出来的问题了嘤嘤嘤

用了桶排序(?)和前缀和(?)类似的思想(?)←开始瞎bb

因为越往高,塔数肯定不减,输入每个高度的时候记录一下到这个高度时,塔数要-1(a[h]--), 然后a[0]=n, a[i] += a[i-1],一个个往后加就可以了

#include <stack>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn = 200010;
const int INF = 1000000100;
int a[maxn];
int main()
{int n, k;scanf("%d%d", &n, &k);int maxh = 0;for(int i = 1; i <= n; i++){int h;scanf("%d", &h);maxh = max(h, maxh);a[h]--;}a[0] = n;for(int i = 0; i <= maxh; i++)a[i] += a[i-1];int cnt = 0, res = 0;for(int i = maxh; i >= 0; i--){if(a[i] == n){if(res) cnt++;break;}if(res + a[i] > k){cnt++;res = a[i];}elseres += a[i];}printf("%d\n", cnt);return 0;
}

View Code

转载于:https://www.cnblogs.com/pinkglightning/p/9780885.html

思维 || Make It Equal相关推荐

  1. CF思维联系– Codeforces-988C Equal Sums (哈希)

    ACM思维题训练集合 You are given k sequences of integers. The length of the i-th sequence equals to ni.You h ...

  2. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

  3. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  4. 【CodeForces - 988C 】Equal Sums (思维,STLmap,STLset,tricks)

    题干: You are given kk sequences of integers. The length of the ii-th sequence equals to nini. You hav ...

  5. Make Product Equal One(思维)

    Make Product Equal One - CodeForces 1206B - Virtual Judge (csgrandeur.cn) 想复杂了,这题考的边界情况对我来说有点多,挺好的一题 ...

  6. CodeForces - 622C Not Equal on a Segment(思维+水题)

    题目链接:点击查看 题目大意:先给出一个长度为n的数列,然后给出m次询问,每次询问的格式是l,r,x,其中[l,r]代表的是数列的下标范围,要求我们输出任意一个在区间[l,r]内值不等于x的下标 题目 ...

  7. 一键生成CSDN文章的思维导图目录

    简 介: 本文给出了直接将CSDN文章一键生成对应的思维导图目录的程序.将目录增加在博文的最开始,可以更好地显示博文的内部结构,作为原来CSDN网页中目录的补充,丰富博文的表达能力. 关键词: CSD ...

  8. 14行代码AC_Zero Array(思维)

    立志用更少的代码做更高效的表达 You are given an array a1,a2,-,an.In one operation you can choose two elements ai an ...

  9. Mind Control CodeForces - 1291C(思维)

    You and your n−1n−1 friends have found an array of integers a1,a2,-,ana1,a2,-,an. You have decided t ...

最新文章

  1. ruby require的使用
  2. 基于linux和php的稳定的分布式数据采集架构
  3. 服务器系统与普通系统不同,服务器系统与普通系统区别
  4. 基于 Kyma 的企业级云原生应用的扩展案例分享
  5. java 自定义注解_Java注解
  6. think in java第6_think-in-java/6.5 protected.md at master · quanke/think-in-java · GitHub
  7. fcntl函数详解-文件锁
  8. android4.2实现pwm,Android平台下AOA协议的PWM信号控制系统
  9. xshell修改linux编码,xshell更改字符编码,xshell系统设置中文乱码怎么解决
  10. 【rmzt】小清新美女win7主题_7.14
  11. oeasy教您玩转vim - 90 - # 语法定义syntax
  12. 最强蜗牛服务器维护祷告什么时候领取都一样,最强蜗牛猴子祷告奖励什么时候领...
  13. oracle 新增字段 影响,Oracle 之 表新增字段后修改字段顺序
  14. 答云淡风轻:汉化Rails报错信息,部署发布,NT服务
  15. Java kafka producer 的常用参数的意义说明及默认值
  16. 企业员工快速增长,无线网络如何承载需求?干货!
  17. mmdetection3d kitti (持续更新)
  18. C++11时代的标准库快餐教程(4) - 排序算法的应用
  19. isdisposed java_Java Shell.isDisposed方法代碼示例
  20. 只能输入零和非零开头的数字的正则表达式

热门文章

  1. shell编程中配置文件的使用
  2. 示波器纹波测试的时间设置_500W电源横评:输出纹波3款电源超标
  3. linq结果转换object_19.07.26 JS 里的数据类型转换amp;普通类型和对象的区别
  4. 不同工作组能访问吗_「长笛众测」你能听出3K-9W不同价位长笛的区别吗?
  5. USB HID学习:一点开发记录
  6. 我的git仓库,顺记github配置
  7. python字符串中千分位标记的转化
  8. linux5.5 里dns,linux red hat 5.5 dns 问题求解
  9. egg前面加什么,egg前加a还是an?
  10. 【Elasticsearch】java 客户端 获取 termvectors 词频 统计