用printf试试
by 崔化博 @ 2022-08-07 12:55:40
不吸氧也能过啊
by OoXiao_QioO @ 2022-08-07 12:56:40
对对,用printf@[czy0323](/user/538427)
by OoXiao_QioO @ 2022-08-07 12:57:08
关同步用 `std::cout << '\n'`
by xyf007 @ 2022-08-07 12:59:34
`endl;` 太慢
by Micnation_AFO @ 2022-08-07 13:23:19
@[崔化博](/user/304524) 好的,我试试
by czy0323 @ 2022-08-07 13:27:07
@[崔化博](/user/304524) 过了,谢谢大佬的帮助
by czy0323 @ 2022-08-07 13:31:17
@[xyf007](/user/68273) @[OoXiao_QioO](/user/721429) @[Leap_hash_jperm](/user/574944) 已过,谢谢各位大佬
by czy0323 @ 2022-08-07 13:32:46
**嘿,突击检查**
by ocean2th8 @ 2022-08-08 22:09:36
你看看这个代码呢!
```
/*
@filename: 区间最小值-线段树做法
@author: sww
@date: 2022-10-26 15:41:58 星期三
@version: V1.0.0
*/
#include <iostream>
#define maxn 2000005
#define lc k << 1
#define rc k << 1 | 1
using namespace std;
int read()
{
int x = 0, w = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
w = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = x * 10 + (ch - '0');
ch = getchar();
}
return x * w;
}
struct node
{
int l, r;
int date;
} tree[maxn * 4];
int a[maxn], n, m, x, y;
void build(int k, int l, int r)
{
if (l > r)
return;
tree[k].l = l;
tree[k].r = r;
if (l == r){
tree[k].date = a[l];
return;
}
int mid = (l + r) >> 1;
build(lc, l, mid);
build(rc, mid + 1, r);
tree[k].date = min(tree[lc].date, tree[rc].date);
}
int find(int k, int l, int r)
{
if (l <= tree[k].l && r >= tree[k].r)
return tree[k].date;
int mid = (tree[k].l + tree[k].r) >> 1;
int Min = 0x3f3f3f3f;
if (l <= mid)
Min = min(Min, find(lc, l, r));
if (r > mid)
Min = min(Min, find(rc, l, r));
return Min;
}
int main()
{
n = read(), m = read();
for (int i = 1; i <= n; i++)
a[i] = read();
a[0] = 0x3f3f3f3f;
build(1,1,n);
for (int i = 1; i <= n; i++)
{
x = i - m, y = i - 1;
if (x < 0) //如果左端点超过了,则将左端点设为1
x = 1;
if (x > y)//如果左端点比右端点还大
{
printf("%d\n", 0);
continue;
}
printf("%d\n", find(1, x, y));
}
return 0;
}
by Ly_boy @ 2022-10-29 11:03:57