2020 CCPC Wannafly Winter Camp Day1 7-9 1I. K小数查询

暴力写法 Onm的复杂度。

等下更新  jls线段树和分块的写法

#include <bits/stdc++.h>
using namespace std;
const int M = 100005;
int a[M], p[M];
int main() {
	int n, m;
	scanf("%d%d", &n, &m);
	for (int i = 1; i < n + 1; ++i) scanf("%d", &a[i]);
	while (m--) 
	{
		int op, l, r, t;
		scanf("%d%d%d%d", &op, &l, &r, &t);
		if (op == 1)
			for (int i = l; i < r + 1; ++i)
				a[i] = min(a[i], t);
		else 
		{
			memset(p, 0, sizeof(p));
			for (int i = l; i < r + 1; ++i) ++p[a[i]];
			int tem = 0;
			for (int i = 1; i < n + 1; ++i) {
				tem += p[i];
				if (tem >= t) {
					printf("%d\n", i);
					break;
				}
			}
		}
	}
	return 0;
}
发布了284 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/bjfu170203101/article/details/104202141
今日推荐