ACM-ICPC 2018 南京赛区网络预赛 G. Lpl and Energy-saving Lamps (弱线段树)
线段树节点维护区间最小值,查找时优先从左侧的区间寻找.
每一次循环都在树中不停寻找第一个小于等于当前持有数的值,然后抹去,直到找不到为止.
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define lson rt<<1
#define rson rt<<1|1
#define Lson l,m,lson
#define Rson m+1,r,rson
using namespace std;
typedef long long LL;
const int INF = 0x3f3f3f3f;
const int maxn=1e5+5;
int val[maxn];
struct Node{
int num;
}tree[maxn<<2];
int n;
void pushup(int rt)
{
tree[rt].num = min(tree[lson].num,tree[rson].num);
}
void build(int l=1,int r=n,int rt=1)
{
if(l==r){
tree[rt].num = val[l];
return ;
}
int m = (l+r)>>1;
build(Lson);
build(Rson);
pushup(rt);
}
bool flag;
int query(int val,int l=1,int r=n,int rt=1)
{
int res=-1,m = (l+r)>>1;
if(tree[rt].num<=val){
if(l==r){
int tmp = tree[rt].num;
tree[rt].num = INF;
return tmp;
}
res = query(val,Lson);
if(res!=-1) {
pushup(rt);
return res;
}
res = query(val,Rson);
if(res!=-1){
pushup(rt);
return res;
}
}
return -1;
}
int ans1[maxn];
int ans2[maxn];
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
int m,q;
while(scanf("%d %d",&n,&m)==2){
for(int i=1;i<=n;++i){
scanf("%d",&val[i]);
}
build();
flag = false;
int sum = 0,tot=0;
for(int i=1;i<=100000;++i){
//cout<<tree[1].num<<endl;
if(tree[1].num ==INF) flag = true;
if(!flag) {
sum += m;
int tmp = query(sum);
while(tmp!=-1){
sum-=tmp;
tot++;
tmp = query(sum);
}
}
ans1[i] = tot;
ans2[i] = sum;
}
int id;
scanf("%d",&q);
for(int i=1;i<=q;++i){
scanf("%d",&id);
printf("%d %d\n",ans1[id],ans2[id]);
}
}
return 0;
}
ACM-ICPC 2018 南京赛区网络预赛 G. Lpl and Energy-saving Lamps (弱线段树)的更多相关文章
- ACM-ICPC 2018 南京赛区网络预赛 G Lpl and Energy-saving Lamps(线段树)
题目链接:https://nanti.jisuanke.com/t/30996 中文题目: 在喝茶的过程中,公主,除其他外,问为什么这样一个善良可爱的龙在城堡里被监禁Lpl?龙神秘地笑了笑,回答说这是 ...
- ACM-ICPC 2018 南京赛区网络预赛 G Lpl and Energy-saving Lamps(模拟+线段树)
https://nanti.jisuanke.com/t/30996 题意 每天增加m个灯泡,n个房间,能一次性换就换,模拟换灯泡过程.询问第几天的状态 分析 离线做,按题意模拟.比赛时线段树写挫了. ...
- ACM-ICPC 2018 南京赛区网络预赛 G. Lpl and Energy-saving Lamps(二分+线段树区间最小)
During tea-drinking, princess, amongst other things, asked why has such a good-natured and cute Drag ...
- 计蒜客 30996.Lpl and Energy-saving Lamps-线段树(区间满足条件最靠左的值) (ACM-ICPC 2018 南京赛区网络预赛 G)
G. Lpl and Energy-saving Lamps 42.07% 1000ms 65536K During tea-drinking, princess, amongst other t ...
- ACM-ICPC 2018 南京赛区网络预赛 I Skr (马拉车+hash去重)或(回文树)
https://nanti.jisuanke.com/t/30998 题意 给一串由0..9组成的数字字符串,求所有不同回文串的权值和.比如说“1121”这个串中有“1”,“2”,“11”,“121” ...
- ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...
- ACM-ICPC 2018 南京赛区网络预赛(12/12)
ACM-ICPC 2018 南京赛区网络预赛 A. An Olympian Math Problem 计算\(\sum_{i=1}^{n-1}i\cdot i!(MOD\ n)\) \(\sum_{i ...
- ACM-ICPC 2018 南京赛区网络预赛 J.sum
A square-free integer is an integer which is indivisible by any square number except 11. For example ...
- ACM-ICPC 2018 南京赛区网络预赛 E题
ACM-ICPC 2018 南京赛区网络预赛 E题 题目链接: https://nanti.jisuanke.com/t/30994 Dlsj is competing in a contest wi ...
随机推荐
- WebApi 异常处理解决方案
1.继承ExceptionFilterAttribute类,重写OnException方法 public class WebApiExceptionFilterAttribute : Exceptio ...
- AngularJS------各种版本下载地址
转载: http://blog.csdn.net/Rongbo_J/article/details/51325606 下载地址: github https://github.com/angular/a ...
- 杭电 1280 前m大的数
http://acm.hdu.edu.cn/showproblem.php?pid=1280 前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memor ...
- solr初认识
Solr : Search On Lucene Replication Solr 基本概况 Apache Solr (读音: SOLer) 是一个开源的搜索服务器.Solr 使用 Java 语言开发, ...
- 你所不知道的CSS
1.用FONT-SIZE:0来清除间距 inline-block的元素之间会受空白区域的影响,也就是元素之间差不多会有一个字符的间隙.如果在同一行内有4个25%相同宽度的元素,会导致最后一个元素掉下来 ...
- 合并图片、EUI顺序、CacheAsBitmap对drawcall影响的测试
一 什么是DrawCall Draw Call 理解和优化: http://blog.csdn.net/sakyaer/article/details/44459881 draw call是openG ...
- Objective-C代码学习大纲(4)
2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...
- maven发布项目的snapshot到nexus
1.配置发布地址信息 <repositories> <repository> <id>nexus</id> <name>Local Repo ...
- Debian安装Chrome
本文完全原创,转载请说明出处,希望对大家有用. 本篇博客是个人总结,一方面以便日后查看,另一方面希望能为其他人提供一些便利. 正文 新安装的Debian需要安装个chromeFQ,但从google网站 ...
- Microsoft Excel 标题栏或首行锁定
Microsoft Excel 标题栏或首行锁定 在进行Excel编辑的时候,希望在浏览的时候,第一行或者第一列能够始终显示. 需要做的是:在Excel中选择 "视图"->& ...