BZOJ 1135 P3488 LYZ-Ice Skates 线段树+Hall
https://www.luogu.org/problem/P3488
根据Hall定理 左边任意一个区间L-R a[i]的和sum[l~r] 都要<= (R-L+1+d)*K
把(R-L+1)*K 挪到左边 即为 对任意L-R区间 有 $\sum_{i=L}^R{(a[i]-k)} \le K*D$
然后用线段树最大字段和去维护它即可
#include<bits/stdc++.h>
#define RG register
using namespace std;
typedef long long ll;
const int MAXN = ;
struct segment_tree {
ll lmax, rmax, ans, sum;
} sgt[MAXN << ];
int n, m;
ll k, d;
inline void pushup(int x) {
sgt[x].sum = sgt[x << ].sum + sgt[x << | ].sum;
sgt[x].lmax = max(sgt[x << ].lmax, sgt[x << ].sum + sgt[x << | ].lmax);
sgt[x].rmax = max(sgt[x << | ].rmax, sgt[x << ].rmax + sgt[x << | ].sum);
sgt[x].ans = max(sgt[x << ].ans, max(sgt[x << | ].ans, sgt[x << ].rmax + sgt[x << | ].lmax));
}
void build(int x, int l, int r) {
if (l == r) {
sgt[x].lmax = sgt[x].rmax = ;
sgt[x].sum = sgt[x].ans = -k;
return ;
}
int mid = (l + r) >> ;
build(x << , l, mid);
build(x << | , mid + , r);
pushup(x);
}
void update(int x, int l, int r, int aim, ll add) {
if (l == r) {
sgt[x].sum += add, sgt[x].ans += add;
sgt[x].lmax = sgt[x].rmax = max(sgt[x].sum, 0LL);
return ;
}
int mid = (l + r) >> ;
if (aim <= mid) {
update(x << , l, mid, aim, add);
} else {
update(x << | , mid + , r, aim, add);
}
pushup(x);
}
int main() {
ll x, y;
scanf("%d %d %lld %lld", &n, &m, &k, &d);
build(, , n);
for (int i = ; i <= m; i++) {
scanf("%lld %lld", &x, &y);
update(, , n, x, y);
if (sgt[].ans <= 1LL * k * d) {
printf("TAK\n");
} else {
printf("NIE\n");
}
}
return ;
}
BZOJ 1135 P3488 LYZ-Ice Skates 线段树+Hall的更多相关文章
- [BZOJ 1135][POI2009]Lyz
[BZOJ 1135][POI2009]Lyz 题意 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的 ...
- bzoj 1135 [POI2009]Lyz 线段树+hall定理
1135: [POI2009]Lyz Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 573 Solved: 280[Submit][Status][ ...
- [BZOJ 2212] [Poi2011] Tree Rotations 【线段树合并】
题目链接:BZOJ - 2212 题目分析 子树 x 内的逆序对个数为 :x 左子树内的逆序对个数 + x 右子树内的逆序对个数 + 跨越 x 左子树与右子树的逆序对. 左右子树内部的逆序对与是否交换 ...
- [BZOJ 3995] [SDOI2015] 道路修建 【线段树维护连通性】
题目链接:BZOJ - 3995 题目分析 这道题..是我悲伤的回忆.. 线段树维护连通性,与 BZOJ-1018 类似,然而我省选之前并没有做过 1018,即使它在 ProblemSet 的第一页 ...
- [BZOJ 3888] [Usaco2015 Jan] Stampede 【线段树】
题目链接:BZOJ - 3888 题目分析 首先,计算出每个线段在 x 坐标 0 处出现的时间开始点和结束点,就转成了时间轴上的线段. 然后就是看每条线段是否被 y 比它小的线段完全覆盖了.注意求出的 ...
- [BZOJ 3747] [POI 2015] Kinoman【线段树】
Problem Link : BZOJ 3747 题解:ZYF-ZYF 神犇的题解 解题的大致思路是,当区间的右端点向右移动一格时,只有两个区间的左端点对应的答案发生了变化. 从 f[i] + 1 到 ...
- BZOJ 1593: [Usaco2008 Feb]Hotel 旅馆 [线段树]
传送门 题意: 操作1:找长为$len$的空区间并填满,没有输出$0$ 操作2:将$[l,r]$之间的区间置空 我真是太弱了这种线段树还写了一个半小时,中间为了查错手动模拟了$30min$线段树操作, ...
- BZOJ.4137.[FJOI2015]火星商店问题(线段树分治 可持久化Trie)
BZOJ 洛谷 一直觉得自己非常zz呢.现在看来是真的=-= 注意题意描述有点问题,可以看BZOJ/洛谷讨论. 每个询问有两个限制区间,一是时间限制\([t-d+1,t]\),二是物品限制\([L,R ...
- BZOJ.1805.[IOI2007]sail船帆(贪心 线段树)
BZOJ 洛谷 首先旗杆的顺序没有影响,答案之和在某一高度帆的总数有关.所以先把旗杆按高度排序. 设高度为\(i\)的帆有\(s_i\)个,那么答案是\(\sum\frac{s_i(s_i-1)}{2 ...
随机推荐
- 顺序表的基本操作【c语言】【创建、插入、删除、输出】
作为数据结构初学者,上课时对一些知识点掌握得不是很透彻,所以利用课余时间通过微博平台总结所学知识,加深对知识的见解,记录学习历程便于后需要时参考. #include<stdio.h> #i ...
- powerDesigner的建表语句默认设置为去掉双引号
powerDesigner的建表语句默认设置为去掉双引号,依次执行如下操作: Database ------>> Edit Current DBMS ------>> Scri ...
- JAVA开发者大会:拍拍贷MQ系统原理与应用
--喜欢记得关注我哟[shoshana]-- 前记: 5月12号参加了JAVA开发者大会,就<拍拍贷消息系统原理及应用> 作者:李乘胜老师 关于PMQ的分享整理一下笔记以及笔记的思考 和复 ...
- ubuntu 忘记密码如何 修改密码
ubuntu 忘记密码如何 修改密码 这个链接讲的很不错 https://blog.csdn.net/zd147896325/article/details/81664558 本来我只是玩一玩,但是我 ...
- NOIP比赛中如何加速c++的输入输出
NOIP比赛中如何加速c++的输入输出 在竞赛中,遇到大数据时,往往需要更快的读取方式.由于比赛中输出一般规模较小,本文只讨论输入如何加速. 现在我们生成1000000个随机数,构成1000*1000 ...
- Photon Server初识(四) --- 部署自己的服务Photon Server
准备工作: 1.一台 window 虚拟机(本机是window也行) 2.下载SDK : https://www.photonengine.com/zh-CN/sdks#server 一:SDK介绍 ...
- Python---通配符的使用
苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元 在 Python 中可以使用 print 函数将信息输出到控制台 如果希望输出文字信息的同时,一起输出 数据,就需要使用到 ...
- 【搜索】n的约数
题目链接:传送门 [题解]: 考察dfs和质因数分解,首先开一个prime数组. 参数解释: 1.当前值的大小.[利用题目的n来控制范围] 2.控制下界,每次都是以某一个质数开始搜索, pos 3.控 ...
- luogu P4762 [CERC2014]Virus synthesis (回文自动机)
大意: 初始有一个空串, 操作(1)在开头或末尾添加一个字符. 操作(2)在开头或末尾添加该串的逆串. 求得到串$S$所需最少操作数. 显然最后一定是由某个偶回文通过添加字符得到的, 那么只需要求出所 ...
- gogs 搭建
sudo apt-get install nginx sudo apt-get install git sudo apt-get install mysql-server mysql -u root ...