- 「一本通 4.2 例 2」最敏捷的机器人
最最最最最敏捷的人机
- 2025-3-23 10:15:20 @
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, m, a[N], dp[N][25], dp2[N][25];
int main() {
scanf("%d %d", &n, &m);
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
for(int i = 1; i <= n; i++) {
dp[i][0] = a[i] ;
dp2[i][0] = a[i] ;
}
for(int i = 1; (1 << i) < n; i++) {
for(int j = 1; j + (1 << i) - 1 <= n; j++) {
dp[j][i] = max(dp[j][i - 1], dp[j + (1 << i - 1)][i - 1]);
dp2[j][i] = min(dp2[j][i - 1], dp2[j + (1 << i - 1)][i - 1]);
}
}
int t = log2(m);
for(int i = 1; i + m - 1 <= n; i++) {
printf("%d ", max(dp[i][t], dp[i + m - (1 << t)][t]));
printf("%d\n", min(dp2[i][t], dp2[i + m - (1 << t)][t]));
}
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 1364
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 94
- 已通过
- 32
- 上传者