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. 干草堆相关推荐

  1. 算法每日一题——第六天——干草堆(差分)

    原题链接:2041. 干草堆 - AcWing题库 读完这道题大致可以把题分为两部分,第一部分需要统计每个干草堆所堆放的干草捆的数量,第二部分需要根据干草捆的数量对干草堆排序,输出排最中间的干草堆堆放 ...

  2. 寒假每日一题 2 : 干草堆 java

    干草堆 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 N 个空干草堆,编号 1∼N. 约翰给贝茜下达了 K 个指令,每条指令的格式为 A ...

  3. AcWing 2041. 干草堆(一维差分)

    题目:2041. 干草堆 题解:典型的一维差分题型 #include<bits/stdc++.h> #define x first #define y second using names ...

  4. AcWing 2041. 干草堆

    题目描述 题目链接2041. 干草堆 算法1 思路 可以用差分+前缀和的思想,最后通过sort排序选择中位数 时间复杂度 O(nlogn)O(nlogn)O(nlogn) C++ 代码 #includ ...

  5. acwing——每日一题——总结

    acwing--每日一题--总结 第一周 1.笨拙的手指(考查点:进制转换) 2.干草堆(考查点:差分+前缀和) 3.奶牛选美(bfs模板+floodfill算法) 4.拖拉机(bfs+双端队列=迪杰 ...

  6. 2041. 干草堆(前缀和差分)

    2041. 干草堆 题目 提交记录 讨论 题解 视频讲解 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 NN 个空干草堆,编号 1∼N1∼ ...

  7. acwing 2041.干草堆

    2014. 干草堆 题目 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 N 个空干草堆,编号 1∼N. 约翰给贝茜下达了 K 个指令,每条 ...

  8. AcWing 2041. 干草堆(差分)

    题目链接 https://www.acwing.com/problem/content/2043/ 思路 因为我们前面有k个区间修改操作,最后求出中位数,由于是静态的,所以我们直接使用差分维护就好啦, ...

  9. Acwing每日一题 4366. 上课睡觉

    题目链接:4366. 上课睡觉 - AcWing题库 思路:暴力枚举,枚举每种最终每堆石头的数量和. AC代码 #include<iostream> using namespace std ...

最新文章

  1. JFreeChart 使用介绍
  2. 回溯专题leetcode
  3. el-table使用图片实例代码
  4. 使用 matlab 进行正太拟合
  5. 有效解决RaycastTarget勾选过多的烦恼
  6. 综合项目之闪讯破解(二)之 如何用C++建立PPPOE连接
  7. 【算法竞赛学习笔记】平衡树专题——替罪羊树
  8. 恩尼格玛机(字母转换,水题)
  9. day16 正则检测、匹配次数、分组与分支、re模块、匹配参数
  10. 一个类月光宝盒应用,把手机,电视,盒子变家庭游戏机(FBA,FBNEO,MAME)
  11. Java处理敲击键盘事件 Etch-A-Sketch玩具实现 光标画笔画图程序 Java核心技术
  12. 联通集团入选混改试点:电联合并已无希望
  13. Procmon.exe —— 强大的系统监视工具
  14. python IO模块【一】:IO类
  15. 诚邀参加“认知与路径:元宇宙科技传播”线上专题研讨会
  16. Java8新日期和时间API
  17. 计算机课电子商务那一题,[计算机]电子商务试题.pdf
  18. 【微信小程序遇到的坑】微信支付
  19. 数字化采购管理 招标采购系统源码
  20. C#合并两个图片,并保存到本地

热门文章

  1. 笔记本cpu天梯图2022
  2. mysql_assoc函数_PHP:MySQL函数mysql_fetch_assoc()的用法
  3. 灵雀云ACP成功通过金融信创生态实验室适配验证
  4. 关于win11 碍眼的主文件夹的有效删除办法
  5. dht11 python mysql,通过python脚本将arduino传感器数据发送到mysql数据库时出现问题
  6. 详解Nginx的核心原理
  7. gcc -ffunction-sections -fdata-sections -Wl,–gc-sections 参数详解
  8. STM8S编译错误unable to allocate space for sections/blocks with a total
  9. 6大Word编辑高级技巧,制作文档又快又好看
  10. Linux--问题1--从用户态进入内核态