
Codeforces Global Round 7 E. Bombs(线段树+思维)
思路:思维量很大的题,不看题解完全做不来。。。首先要明白一件事答案肯定是递减的,所以想减少复杂度就可以通过逐渐枚举答案ans,剩下的就是判断ans能否作为答案。只有区间内的某一个位置大于等于ans的数减去后面的炸弹数量大于0那么ans就可行。
发布日期:2021-05-08 15:18:58
浏览次数:23
分类:精选文章
本文共 937 字,大约阅读时间需要 3 分钟。


#includeusing namespace std;typedef long long ll;const int maxn=3e5+1; int a[maxn],b[maxn],pos[maxn];struct node{ int l,r,lazy,sum;}tree[maxn<<2];void pushup(int x){ tree[x].sum=max(tree[x<<1].sum,tree[x<<1|1].sum);}void pushdown(int x){ if(tree[x].lazy) { tree[x<<1].sum+=tree[x].lazy; tree[x<<1|1].sum+=tree[x].lazy; tree[x<<1].lazy+=tree[x].lazy; tree[x<<1|1].lazy+=tree[x].lazy; tree[x].lazy=0; }}void build(int x,int l,int r){ tree[x].l=l;tree[x].r=r; if(l==r){ tree[x].lazy=tree[x].sum=0;return ; } int mid=(l+r)>>1; build(x<<1,l,mid); build(x<<1|1,mid+1,r); pushup(x);}void update(int x,int l,int r,int v){ if(l<=tree[x].l&&tree[x].r<=r){ tree[x].sum+=v; tree[x].lazy+=v; return ; } pushdown(x); int mid=(tree[x].l+tree[x].r)>>1; if(l<=mid) update(x<<1,l,r,v); if(mid
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月29日 10时50分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
django中文件的上传问题
2021-05-14
Spark Standalone模式下启动集群的基本流程
2021-05-14
LeetCode Top-100 T22-括号生成
2021-05-14
svg基础+微信公众号交互(二)
2021-05-14
webstorm 自定义快捷键
2021-05-14
vscode设置eslint保存文件时自动修复eslint错误
2021-05-14
deepin 安装过程记录
2021-05-14
JAVA 多线程
2021-05-14
shell脚本内使用pwd命令
2021-05-14
用Idea 生成 JavaDoc帮助文档
2021-05-14
接口详解
2021-05-14
Java的System类 【基本方法都在里面】
2021-05-14
Java的 arraylist类【具体案例】
2021-05-14
FileWriter
2021-05-14
Java中IO流的打印流-PrintWriter
2021-05-14
JS 原型
2021-05-14
删除DOM节点
2021-05-14
牛客-链表中环的入口节点(Java)
2021-05-14
【ARM自学笔记】ARM Cortex -A中断系统(程序篇)
2021-05-14
弹性盒子
2021-05-14