求解析
  • 板块灌水区
  • 楼主HenryLin11
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/26 13:49
  • 上次更新2024/6/26 14:30:41
查看原帖
求解析
987047
HenryLin11楼主2024/6/26 13:49

P1886,总做不对,感觉思路跟题解一样啊

#include<bits/stdc++.h>
#define Say read();
#define Hello minv();
#define World maxv();
#define kMaxN 1000006
using namespace std;
int n,k,ary[kMaxN]={0},ansn[kMaxN]={0},ansx[kMaxN]={0};
deque<int> qia;
deque<int> qib;
deque<int> qaa;
deque<int> qab;
inline void read(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>ary[i];
	}
	return;
}
inline void minv(){
	int l=1-k,r=0;
	qia.push_back(ary[1]);
	qib.push_back(1);
	while(l<=(n-k+1)){
		if(qib.front()<l){
			qia.pop_front();
			qib.pop_front();
		}
		if(r<=n){
			while(!qia.empty()){
				if(ary[r]<qia.back()){
					break;
				}
				qia.pop_back();
				qib.pop_back();
			}
			qia.push_back(ary[r]);
			qib.push_back(r);
			r++;
		}
		if(l>0){
			cout<<qia.front()<<" ";
		}
		l++;
		
	}
	cout<<"\n";
	return;
}
inline void maxv(){
	int l=1-k,r=0;
	qaa.push_back(ary[1]);
	qab.push_back(1);
	while(l<=(n+1-k)){
		if(qab.front()<l){
			qaa.pop_front();
			qab.pop_front();
		}
		if(r<=n){
			while(!qaa.empty()){
				if(ary[r]>qaa.back()){
					break;
				}
				qaa.pop_back();
				qab.pop_back();
			}
			qaa.push_back(ary[r]);
			qab.push_back(r);
			r++;
		}
		if(l>0){
			cout<<qia.front()<<" ";
		}
		l++;
	}
	cout<<"\n";
	return;
}
int main(){
	Say Hello World
	return 0;
}

| 顺便问一下,能不能在洛谷发这些东西?|

| 1. 自己研发的机房装逼系统 |
| 2. 发现的OJ网站 |
| 3. 这个帖子(不能的话我马上删除,别举报) |

2024/6/26 13:49
加载中...