思维 || Make It Equal
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相关推荐
- 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 ...
- ACM思维题训练 Section A
题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...
- AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和
传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...
- 【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 ...
- Make Product Equal One(思维)
Make Product Equal One - CodeForces 1206B - Virtual Judge (csgrandeur.cn) 想复杂了,这题考的边界情况对我来说有点多,挺好的一题 ...
- CodeForces - 622C Not Equal on a Segment(思维+水题)
题目链接:点击查看 题目大意:先给出一个长度为n的数列,然后给出m次询问,每次询问的格式是l,r,x,其中[l,r]代表的是数列的下标范围,要求我们输出任意一个在区间[l,r]内值不等于x的下标 题目 ...
- 一键生成CSDN文章的思维导图目录
简 介: 本文给出了直接将CSDN文章一键生成对应的思维导图目录的程序.将目录增加在博文的最开始,可以更好地显示博文的内部结构,作为原来CSDN网页中目录的补充,丰富博文的表达能力. 关键词: CSD ...
- 14行代码AC_Zero Array(思维)
立志用更少的代码做更高效的表达 You are given an array a1,a2,-,an.In one operation you can choose two elements ai an ...
- 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 ...
最新文章
- ruby require的使用
- 基于linux和php的稳定的分布式数据采集架构
- 服务器系统与普通系统不同,服务器系统与普通系统区别
- 基于 Kyma 的企业级云原生应用的扩展案例分享
- java 自定义注解_Java注解
- think in java第6_think-in-java/6.5 protected.md at master · quanke/think-in-java · GitHub
- fcntl函数详解-文件锁
- android4.2实现pwm,Android平台下AOA协议的PWM信号控制系统
- xshell修改linux编码,xshell更改字符编码,xshell系统设置中文乱码怎么解决
- 【rmzt】小清新美女win7主题_7.14
- oeasy教您玩转vim - 90 - # 语法定义syntax
- 最强蜗牛服务器维护祷告什么时候领取都一样,最强蜗牛猴子祷告奖励什么时候领...
- oracle 新增字段 影响,Oracle 之 表新增字段后修改字段顺序
- 答云淡风轻:汉化Rails报错信息,部署发布,NT服务
- Java kafka producer 的常用参数的意义说明及默认值
- 企业员工快速增长,无线网络如何承载需求?干货!
- mmdetection3d kitti (持续更新)
- C++11时代的标准库快餐教程(4) - 排序算法的应用
- isdisposed java_Java Shell.isDisposed方法代碼示例
- 只能输入零和非零开头的数字的正则表达式
热门文章
- shell编程中配置文件的使用
- 示波器纹波测试的时间设置_500W电源横评:输出纹波3款电源超标
- linq结果转换object_19.07.26 JS 里的数据类型转换amp;普通类型和对象的区别
- 不同工作组能访问吗_「长笛众测」你能听出3K-9W不同价位长笛的区别吗?
- USB HID学习:一点开发记录
- 我的git仓库,顺记github配置
- python字符串中千分位标记的转化
- linux5.5 里dns,linux red hat 5.5 dns 问题求解
- egg前面加什么,egg前加a还是an?
- 【Elasticsearch】java 客户端 获取 termvectors 词频 统计