传送门

文章目录

  • 题意:
  • 思路:

题意:

思路:

比较明显的是我们需要将序列从大到小排序,让后取前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,tune=native")
//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#include<random>
#include<cassert>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid ((tr[u].l+tr[u].r)>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#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 pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-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 k<W.k;else return pos<W.pos;}
}q[N];tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pos;int main()
{//  ios::sync_with_stdio(false);
//  cin.tie(0);scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i].X),a[i].X=-a[i].X,a[i].Y=i,c[i]=-a[i].X;sort(a+1,a+1+n);scanf("%d",&m);for(int i=1;i<=m;i++) scanf("%d%d",&q[i].k,&q[i].pos),q[i].id=i;sort(q+1,q+1+m);int now=0;for(int i=1;i<=m;i++) {while(now<q[i].k) pos.insert(a[++now].Y);ans[q[i].id]=c[*pos.find_by_order(q[i].pos-1)];}for(int i=1;i<=m;i++) printf("%d\n",ans[i]);return 0;
}
/**/

Codeforces Round #602 (Div. 2) D2. Optimal Subsequences stl 黑科技相关推荐

  1. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  2. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换

    传送门 文章目录 题意: 思路: 题意: 定义a⊕kba\oplus_k ba⊕k​b为a,ba,ba,b在kkk进制下的不进位加法.系统会随机生成一个数xxx,你猜这个数,假设当前猜的数为yyy,如 ...

  3. szu cf套题训练Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3)A~D题解报告

    A. Math Problem 题目大意:就是给你n个线段,你自己再添加一个线段d使得d和所有的线段都有交点,求d这个线段的最小长度是多少 解题思路: 1.首先看d线段的左端点,就是左端点选取的是所有 ...

  4. Codeforces Round #741 (Div. 2) D2. Two Hundred Twenty One (hard version) 前缀和 + 分段模型

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的串,+++代表111,−-−代表−1-1−1,让后有qqq个询问,每次询问[l,r][l,r][l,r]区间,将这段区间的数拿出来,设为 ...

  5. Codeforces Round #740 (Div. 2) D2. Up the Strip dp + 分块优化 + 逆向思维

    传送门 文章目录 题意: 思路 题意: 有nnn个细胞,你初始在第nnn细胞上,假设你当前在xxx处,你每次可以进行如下两个操作: (1)(1)(1)选择[1,x−1][1,x-1][1,x−1]内一 ...

  6. Codeforces Round #574 (Div. 2) D2. Submarine in the Rybinsk Sea (hard edition)

    题目链接:http://codeforces.com/contest/1195/problem/D2 解题心得:其实就是一个算贡献,只需要看每个数字放在不同位置能为最后的答案提供多少数值就行了,复杂度 ...

  7. Codeforces Round #801 (Div. 2) D2(思维/dfs)

    传送门 题意:给你一颗树,问最少取几点并且得知其与未知点x的距离可以确定树中任意x是哪个节点. 思考:观察可知,对于叶子节点,其兄弟节点到父节点所在的路径上都有点被取到时,不用取它也可以知道具体是哪个 ...

  8. Codeforces Round #674 (Div. 3) F. Number of Subsequences 简单计数dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的串,包含a,b,c,?a,b,c,?a,b,c,?四种字符,其中???可以变成为a,b,ca,b,ca,b,c的任意一种,让你求abca ...

  9. Codeforces Round #700 (Div. 2)A~D2解题报告

    Codeforces Round #700 (Div. 2)A~D2解题报告 A Yet Another String Game 原题链接 http://codeforces.com/contest/ ...

最新文章

  1. 优化思路千万种,基于下界函数的最优化效率如何?
  2. python如何打开文件编辑界面_Python-PyQt5-图形可视化界面(5)--打开文件或文件夹--QFileDialog...
  3. Google官方下拉刷新组件---SwipeRefreshLayout
  4. Fluid: 让大数据和 AI 拥抱云原生的一块重要拼图
  5. 《入门经典》——6.24
  6. 表格过滤器_气缸选型其实并不复杂,知道这些再也不怕选错气缸(附计算表格)...
  7. python 初始化 元组_在Python中重新初始化元组
  8. Android系统Recovery工作原理之使用update.zip升级过程分析(二)---u...
  9. 利用virt-manager,xmanager, xshell启动界面来管理虚拟机
  10. 不能再任性 APP收集个人信息基本规范公开征求意见
  11. 想去三亚旅游,有什么好的景点推荐吗?
  12. CentOS7 下安装telnet服务
  13. 和别人老公上床后的感觉~
  14. Filenet 周报丨2020.01.06-2020.01.19
  15. Linux上恢复被删除的文件或目录
  16. 写个鸭子类方法java_小黄鸭系列java基础知识 | Java基本语法
  17. Gradle sync failed: Sync failed: reason unknown
  18. JS事件 失焦事件(onblur)onblur事件与onfocus是相对事件,当光标离开当前获得聚焦对象的时候,触发onblur事件,同时执行被调用的程序。...
  19. 【历史上的今天】12 月 7 日:历史上第一次直播回放;唱片协会起诉 Napster;最大的梅森素数被发现
  20. Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans,报错解决

热门文章

  1. mft文件记录属性头包括_关于NTFS-MFT
  2. 她花了8个月让骗子爱上自己,然后把骗子引到警察局......
  3. 在中国,有这样一些村落
  4. “一边熬夜一边求不要猝死”,90后养生朋克指南,条条扎心!
  5. mysql二阶段提交有什么问题_MySQL的事务两阶段提交的技术有什么意义?
  6. 面试避坑手册之 Java字节流和字符流总结IO流!
  7. 晨风机器人突破限制_厉害了!工程建设领域首创!会自动测量、自动调平的测量机器人...
  8. java 枚举工厂_在Java中使用枚举工厂,最佳做法?
  9. ant 改变表格数据_表格技巧—Excel表格怎么替换数字
  10. java连接mysql数据库连接池_java使用原生MySQL实现数据的增删改查以及数据库连接池技术...