P2310 loidc,看看海

思路:

我们定义一个结构体,分别用来存海浪的时间和高度。 接下来,我们把结构体按照高度从小到大sort一遍,保证单调性。 这时,对于每一个询问,我们都用一个计数器,将每一个海浪扫一遍。 如果此海浪的时间在x和y之间,就计入计数器。 当扫的过程中计数器到达了z时,就记下当前波浪的时间,并跳出。 时间复杂度为O(NM)。

ACcode:


#include
using namespace std;
#define int long long
const int N=4e3+10;
struct E {
	int h,id;
} a[N];
int n,m;
bool cmp(E i,E j) {
	return i.h>n;
	for(int i=1; i<=n; i++) {
		cin>>a[i].h;
		a[i].id=i;
	}
	sort(a+1,a+1+n,cmp);
	cin>>m;
	while(m--) {
		int x,y,k;
		cin>>x>>y>>k;
		for(int i=1; i<=n; i++) {
			if(a[i].id>=x&&a[i].id<=y) {
				k--;
			}
			if(k==0) {
				cout<>t;
	while(t--) {
		solve();
	}
	return 0;
}



over~

你可能感兴趣的:(算法,c++)