当前位置:网站首页>CF338E Optimize!
CF338E Optimize!
2022-07-30 13:17:00 【心怀凉月】
CF338E Optimize!
任意匹配,考虑将 B B B 排序, B B B 中最大的与 A A A 中最小的匹配, B B B 中次大的与 A A A 中次小的匹配,依次类推。
若满足条件,等价于 B B B 中最大的至少可以与 A A A 中 l e n len len 个可以匹配, B B B 中次大的至少可以与 A A A 中 l e n − 1 len-1 len−1 个匹配,依次类推。
考虑线段树套扫描线维护,加删数时维护区间加减一,全局询问最小值。
时间复杂度 O ( n log n ) \mathcal O(n\log n) O(nlogn)。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ha putchar(' ')
#define he putchar('\n')
inline int read() {
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c > '9') {
if (c == '-')
f = -1;
c = getchar();
}
while (c >= '0' && c <= '9')
x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
return x * f;
}
inline void write(int x) {
if (x < 0) {
putchar('-');
x = -x;
}
if (x > 9)
write(x / 10);
putchar(x % 10 + 48);
}
const int _ = 2e5 + 10;
int n, len, h, a[_], b[_], tr[_ << 2], tag[_ << 2];
void pushdown(int o)
{
tr[o << 1] += tag[o];
tr[o << 1 | 1] += tag[o];
tag[o << 1] += tag[o];
tag[o << 1 | 1] += tag[o];
tag[o] = 0;
}
void upd(int o, int l, int r, int L, int R, int v)
{
if(L <= l && r <= R)
{
tr[o] += v, tag[o] += v;
return;
}
pushdown(o);
int mid = (l + r) >> 1;
if(L <= mid) upd(o << 1, l, mid, L, R, v);
if(R > mid) upd(o << 1 | 1, mid + 1, r, L, R, v);
tr[o] = min(tr[o << 1], tr[o << 1 | 1]);
}
signed main() {
n = read(), len = read(), h = read();
for (int i = 1; i <= len; ++i) b[i] = read();
sort(b + 1, b + len + 1);
for (int i = 1; i <= n; ++i) {
a[i] = read();
a[i] = lower_bound(b + 1, b + len + 1, h - a[i]) - b;
}
for (int i = 1; i <= len; i++) upd(1, 1, len, i, i, -i);
for (int i = 1; i < len; i++) upd(1, 1, len, a[i], len, 1);
int ans = 0;
for (int i = len; i <= n; i++) {
upd(1, 1, len, a[i], len, 1);
if (tr[1] >= 0) ans++;
upd(1, 1, len, a[i - len + 1], len, -1);
}
write(ans), he;
return 0;
}
边栏推荐
猜你喜欢
随机推荐
datax enables hana support and dolphinscheduler enables datax tasks
20220729 Securities, Finance
R语言向前或者向后移动时间序列数据(自定义滞后或者超前的期数):使用dplyr包中的lag函数将时间序列数据向后移动一天(设置参数n为负值)
ENVI图像处理(6):NDVI和植被指数
一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?
阿里 P7 到底是怎样的水平?
创意loadingjs特效小点跳跃动画
There is no one of the strongest kings in the surveillance world!
PyQt5快速开发与实战 8.6 设置样式
基于柔性人机接口的人机协调运动控制方法
判断链表是否有环
jsArray array copy method performance test 2207292307
Parallelized Quick Sort Ideas
R语言筛选时间序列数据的子集(subset time series data)、使用window函数筛选连续日期时间范围内的数据(start参数和end参数分别指定起始和结束时间)
shell script flow control statement
el-table中el-table-column下的操作切换class样式
SyntaxError: EOL while scanning string literal
每天学一点Scala之 伴生类和伴生对象
datax开启hana支持以及dolphinscheduler开启datax任务
matlab画图,仅显示部分图例









