社区讨论

求助这道题

灌水区参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lo95cdxn
此快照首次捕获于
2023/10/28 05:49
2 年前
此快照最后确认于
2023/10/28 05:49
2 年前
查看原帖
https://judge.ccns.io/problems/16
用的 pbds tree,还过了几个点,有无大佬帮忙看看哪里的问题啊,搞了一晚上了
CPP
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
int const N=2333333;
int n,m,k,a[N],b[N];
namespace rando{
	mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
	auto gen=[](int l,int r){return rnd()%(r-l+1)+l;};
}
tree<pair<int,int>,null_type,greater<pair<int,int> >,rb_tree_tag,
	tree_order_statistics_node_update>tr;
int main(){
	ios::sync_with_stdio(0);
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<=m;i++)
		tr.insert({a[i],i});
	for(int i=1;i<=n-m+1;i++){
		cout<<(*tr.find_by_order(k-1)).first<<" ";
		tr.erase({a[i],i}),tr.insert({a[i+m],i+m});
	}
	cout<<"\n";
}

回复

1 条回复,欢迎继续交流。

正在加载回复...