西安app网站开发项目,怎样能创建一个网站,电子商务网站建设的展望,南阳网站营销外包公司传送门 文章目录题意#xff1a;思路#xff1a;题意#xff1a;
思路#xff1a;
比较明显的是我们需要将序列从大到小排序#xff0c;让后取前kkk个数#xff0c;再从中选择第pospospos小的位置输出当前位置的数即可。 一开始想用setsetset维护#xff0c;但是setse…传送门
文章目录题意思路题意
思路
比较明显的是我们需要将序列从大到小排序让后取前kkk个数再从中选择第pospospos小的位置输出当前位置的数即可。 一开始想用setsetset维护但是setsetset没有找第kkk小的函数所以就用主席树切了。但是题解给了一个黑科技来记录一下。 比较全的博客 这个有找第kkk小的函数所以就变成了一个码量很小的题了。
// Problem: D2. Optimal Subsequences (Hard Version)
// Contest: Codeforces - Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3)
// URL: https://codeforces.com/contest/1262/problem/D2
// Memory Limit: 256 MB
// Time Limit: 3000 ms
//
// Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize(Ofast,no-stack-protector,unroll-loops,fast-math)
//#pragma GCC target(sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tunenative)
//#pragma GCC optimize(2)
#includecstdio
#includeiostream
#includestring
#includecstring
#includemap
#includecmath
#includecctype
#includevector
#includeset
#includequeue
#includealgorithm
#includesstream
#includectime
#includecstdlib
#includerandom
#includecassert
#define X first
#define Y second
#define L (u1)
#define R (u1|1)
#define pb push_back
#define mk make_pair
#define Mid ((tr[u].ltr[u].r)1)
#define Len(u) (tr[u].r-tr[u].l1)
#define random(a,b) ((a)rand()%((b)-(a)1))
#define db puts(---)
#include ext/pb_ds/assoc_container.hpp
#include ext/pb_ds/tree_policy.hpp
using namespace std;
using namespace __gnu_pbds;//void rd_cre() { freopen(d://dp//data.txt,w,stdout); srand(time(NULL)); }
//void rd_ac() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//AC.txt,w,stdout); }
//void rd_wa() { freopen(d://dp//data.txt,r,stdin); freopen(d://dp//WA.txt,w,stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pairint,int PII;const int N1000010,mod1e97,INF0x3f3f3f3f;
const double eps1e-6;int n,m;
int c[N];
PII a[N];
int ans[N];
struct Node {int k,pos,id;bool operator (const Node W) const {if(k!W.k) return kW.k;else return posW.pos;}
}q[N];treeint, null_type, lessint, rb_tree_tag, tree_order_statistics_node_update pos;int main()
{
// ios::sync_with_stdio(false);
// cin.tie(0);scanf(%d,n);for(int i1;in;i) scanf(%d,a[i].X),a[i].X-a[i].X,a[i].Yi,c[i]-a[i].X;sort(a1,a1n);scanf(%d,m);for(int i1;im;i) scanf(%d%d,q[i].k,q[i].pos),q[i].idi;sort(q1,q1m);int now0;for(int i1;im;i) {while(nowq[i].k) pos.insert(a[now].Y);ans[q[i].id]c[*pos.find_by_order(q[i].pos-1)];}for(int i1;im;i) printf(%d\n,ans[i]);return 0;
}
/**/