AcWing每日一题2041. 干草堆
AcWing每日一题2041. 干草堆
题目描述
贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来。
开始时,共有 N 个空干草堆,编号 1∼N。
约翰给贝茜下达了 K 个指令,每条指令的格式为 A B,这意味着贝茜要在 A…B 范围内的每个干草堆的顶部添加一个新的干草捆。
例如,如果贝茜收到指令 10 13,则她应在干草堆 10,11,12,13 中各添加一个干草捆。
在贝茜完成了所有指令后,约翰想知道 N 个干草堆的中值高度——也就是说,如果干草堆按照高度从小到大排列,位于中间的干草堆的高度。
方便起见,N 一定是奇数,所以中间堆是唯一的。
请帮助贝茜确定约翰问题的答案。
输入格式
第一行包含 N 和 K。
接下来 K 行,每行包含两个整数 A,B,用来描述一个指令。
输出格式
输出完成所有指令后,N 个干草堆的中值高度。
数据范围
1≤N≤106,
1≤K≤25000,
1≤A≤B≤N
输入样例:
7 4
5 5
2 4
4 6
3 5
输出样例
1
样例解释
贝茜完成所有指令后,各堆高度为 0,1,2,3,3,1,0。
将各高度从小到大排序后,得到 0,0,1,1,2,3,3,位于中间的是 1。
算法
差分算法
时间复杂度
O(n)
源代码
#include<iostream>
#include<algorithm>
using namespace std;
int cnt[1000001] = { 0 };
int main() {int n, k, i, a, b;;cin >> n >> k;for (i = 1;i <= k;i++) {cin >> a >> b;cnt[a]++;cnt[b + 1]--;//差分法}//求元数组for (i = 1;i <= n;i++) {cnt[i] += cnt[i - 1];}//利用sort()函数排序sort(cnt+1, cnt + n+1);/*for (i = 1;i <= n;i++) {cout<<cnt[i]<<" ";}*///输出数组中间的数cout << cnt[n/2+1] << endl;return 0;
}
AcWing每日一题2041. 干草堆相关推荐
- 算法每日一题——第六天——干草堆(差分)
原题链接:2041. 干草堆 - AcWing题库 读完这道题大致可以把题分为两部分,第一部分需要统计每个干草堆所堆放的干草捆的数量,第二部分需要根据干草捆的数量对干草堆排序,输出排最中间的干草堆堆放 ...
- 寒假每日一题 2 : 干草堆 java
干草堆 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 N 个空干草堆,编号 1∼N. 约翰给贝茜下达了 K 个指令,每条指令的格式为 A ...
- AcWing 2041. 干草堆(一维差分)
题目:2041. 干草堆 题解:典型的一维差分题型 #include<bits/stdc++.h> #define x first #define y second using names ...
- AcWing 2041. 干草堆
题目描述 题目链接2041. 干草堆 算法1 思路 可以用差分+前缀和的思想,最后通过sort排序选择中位数 时间复杂度 O(nlogn)O(nlogn)O(nlogn) C++ 代码 #includ ...
- acwing——每日一题——总结
acwing--每日一题--总结 第一周 1.笨拙的手指(考查点:进制转换) 2.干草堆(考查点:差分+前缀和) 3.奶牛选美(bfs模板+floodfill算法) 4.拖拉机(bfs+双端队列=迪杰 ...
- 2041. 干草堆(前缀和差分)
2041. 干草堆 题目 提交记录 讨论 题解 视频讲解 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 NN 个空干草堆,编号 1∼N1∼ ...
- acwing 2041.干草堆
2014. 干草堆 题目 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 N 个空干草堆,编号 1∼N. 约翰给贝茜下达了 K 个指令,每条 ...
- AcWing 2041. 干草堆(差分)
题目链接 https://www.acwing.com/problem/content/2043/ 思路 因为我们前面有k个区间修改操作,最后求出中位数,由于是静态的,所以我们直接使用差分维护就好啦, ...
- Acwing每日一题 4366. 上课睡觉
题目链接:4366. 上课睡觉 - AcWing题库 思路:暴力枚举,枚举每种最终每堆石头的数量和. AC代码 #include<iostream> using namespace std ...
最新文章
- JFreeChart 使用介绍
- 回溯专题leetcode
- el-table使用图片实例代码
- 使用 matlab 进行正太拟合
- 有效解决RaycastTarget勾选过多的烦恼
- 综合项目之闪讯破解(二)之 如何用C++建立PPPOE连接
- 【算法竞赛学习笔记】平衡树专题——替罪羊树
- 恩尼格玛机(字母转换,水题)
- day16 正则检测、匹配次数、分组与分支、re模块、匹配参数
- 一个类月光宝盒应用,把手机,电视,盒子变家庭游戏机(FBA,FBNEO,MAME)
- Java处理敲击键盘事件 Etch-A-Sketch玩具实现 光标画笔画图程序 Java核心技术
- 联通集团入选混改试点:电联合并已无希望
- Procmon.exe —— 强大的系统监视工具
- python IO模块【一】:IO类
- 诚邀参加“认知与路径:元宇宙科技传播”线上专题研讨会
- Java8新日期和时间API
- 计算机课电子商务那一题,[计算机]电子商务试题.pdf
- 【微信小程序遇到的坑】微信支付
- 数字化采购管理 招标采购系统源码
- C#合并两个图片,并保存到本地
热门文章
- 笔记本cpu天梯图2022
- mysql_assoc函数_PHP:MySQL函数mysql_fetch_assoc()的用法
- 灵雀云ACP成功通过金融信创生态实验室适配验证
- 关于win11 碍眼的主文件夹的有效删除办法
- dht11 python mysql,通过python脚本将arduino传感器数据发送到mysql数据库时出现问题
- 详解Nginx的核心原理
- gcc -ffunction-sections -fdata-sections -Wl,–gc-sections 参数详解
- STM8S编译错误unable to allocate space for sections/blocks with a total
- 6大Word编辑高级技巧,制作文档又快又好看
- Linux--问题1--从用户态进入内核态