题目大意

n个房间各有一些需要更换的台灯。每个月买m盏,包括上月累积,从左到右对各房间换灯泡,如果房间里需要更换的数量大于手中的灯泡数则跳过。询问某月累计对多少房间更换灯泡,以及剩下的灯泡数。

思路

线段树维护区间最小值,每次查询左边第一个小于手中灯泡数的房间。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define INF 0x3f3f3f3f
#define rep0(i, n) for (int i = 0; i < n; i++)
#define rep1(i, n) for (int i = 1; i <= n; i++)
#define rep_0(i, n) for (int i = n - 1; i >= 0; i--)
#define rep_1(i, n) for (int i = n; i > 0; i--)
#define MAX(x, y) (((x) > (y)) ? (x) : (y))
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
#define mem(x, y) memset(x, y, sizeof(x))
#define MAXN 100010
using namespace std;
struct Node
{int mn;} tree[MAXN << 2];
int ans[MAXN], rm[MAXN], qu[MAXN];
int a[MAXN];
void push_up(int rt, int l, int r)
{if (l == r)return;tree[rt].mn = MIN(tree[rt << 1].mn, tree[rt << 1 | 1].mn);
}
void build(int rt, int l, int r)
{if (l == r){tree[rt].mn = a[l];return;}int mid = (l + r) >> 1;build(rt << 1, l, mid);build(rt << 1 | 1, mid + 1, r);push_up(rt, l, r);}
int update(int rt, int l, int r, int val)
{if (tree[rt].mn > val)return 0;if (l == r){int tmp = tree[rt].mn;tree[rt].mn = INF;return tmp;}int mid = (l + r) >> 1;int ans = 0;if (tree[rt << 1].mn <= val)ans = update(rt << 1, l, mid, val);else if (tree[rt << 1 | 1].mn <= val)ans = update(rt << 1 | 1, mid + 1, r, val);push_up(rt, l, r);return ans;}int main()
{#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif // ONLINE_JUDGEint n, m, q, mx_mon = 0;scanf("%d %d", &n, &m);for (int i = 1; i <= n; i++)scanf("%d", a + i);build(1, 1, n);scanf("%d", &q);for (int i = 1; i <= q; i++){scanf("%d", qu + i);mx_mon = MAX(mx_mon, qu[i]);}int cnt = n, lmp = 0, mon = 1;for (; mon <= mx_mon; mon++){if (!cnt){ans[mon] = n - cnt;rm[mon] = lmp;continue;}int tmp;lmp += m;while (cnt && (tmp = update(1, 1, n, lmp))){cnt--;lmp -= tmp;}ans[mon] = n - cnt;rm[mon] = lmp;}for (int i = 1; i <= q; i++)printf("%d %d\n", ans[qu[i]], rm[qu[i]]);return 0;
}

计蒜客_Lpl and Energy-saving Lamps_线段树相关推荐

  1. 计蒜客 - Distance on the tree(LCA+主席树)

    题目链接:点击查看 题目大意:给出一颗含有n个节点的树,每条边都有权值,现在给出m个询问,每次询问的格式为u,v,w,我们需要求出在路径u-v上,边权小于等于w的边的个数 题目分析:多的不说了,上一个 ...

  2. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  3. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  4. 最短路(遍历边)计蒜客—DD坐地铁

    题目: C 城有 n 个站点, m 条双向地铁,每条地铁有一个 companyicompany_icompanyi​表示它的公司,如果连续乘坐同一家公司的地铁只要花 1元钱就好.DD现在想出门找萨摩耶 ...

  5. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  6. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

  7. C - Digital Path 计蒜客 - 42397 05-29

    C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...

  8. 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...

    在人才招聘领域存在这样一个怪圈,高校每年都说是最难就业年.人才过剩,而对于企业HR来说永远都招不到称心如意的人才.这个怪圈在"计蒜客"创始人俞昊然看来,主要是因为当今高校的教学资源 ...

  9. 计蒜客 - T1012 A*B问题

    计蒜客 - T1012 A*B问题 相信你已经学会 A+B 问题了,那么问题又来了- 输入两个正整数 A 和 B ,求 A×B. 输入格式 一行,包含两个正整数 A 和 B,中间用单个空格隔开. 1≤ ...

最新文章

  1. 【实用总结】DOM节点className操作
  2. Android文本框EditText显示为多行
  3. 回填用土好还是砂石料好_卫生间做回填好还是做架空好?这两者有哪些优缺点...
  4. redis 缓存过期默认时间_Redis 过期时间与内存管理
  5. mysql 存储过程月单拆天单_MySQL之存储过程按月创建表的方法步骤
  6. 爬取异步请求(XHR/JS)数据方法
  7. P3980-[NOI2008]志愿者招募【费用流】
  8. 计算机系统军训口号,霸气的军训口号大全
  9. Adobe illustrator 调整对象大小 - 连载 11
  10. python列表心得_Python学习心得(第一篇:字符串、列表等)
  11. 如何在Shell脚本中漂亮地打印JSON?
  12. ThreadPool学习草稿1
  13. 使用 vsftpd 服务传输文件
  14. matlab qpsk调制程序,qpsk调制与解调系统的matlab实现
  15. 微信记账小程序(附源码),你值得拥有!
  16. dnf剑魂buff等级上限_DNF:95职业加强前瞻,爆发能力明显提升,瞎子大冰可点TP!...
  17. 推荐系统:电商推荐系统架构
  18. 谁是淘宝创业主力军?平均年龄26 小镇青年占比高
  19. [CF1284G]Seollal
  20. java xlsx转html

热门文章

  1. 计算机内存条如何区分频率,怎么看内存条频率,详细教您怎么看内存条频率
  2. [生存志] 第71节 阖闾五战入郢
  3. Apple 公司开发者账号注册
  4. 计算机专业发展基金申报书,【计算机学院】国家自然科学基金申请书写作技巧及评审要点...
  5. 在使用vue脚手架之前你必须掌握的:vue的模版以及路由用法
  6. 笔记本合上盖子锁定计算机,解决:win10笔记本电脑不合上盖子时也锁定
  7. 一球成谜!咪咕直播联合即构打造世界杯直播答题新玩法
  8. 《一封神气的情书》李敖
  9. stimulsoft mysql_Stimulsoft Server
  10. React 调和(Reconciler)原理理解