随机跳的。

一眼带修第 \(\text{k}\) 大,平衡树 / 权值线段树 / set 随便搞就行。

set 可能要双 \(\log\),所以没写)

很快啊,权值线段树就 \(\text{A}\) 了。直接跑到最优解第二页。

敲一遍警钟,是由大到小第 \(k\) ,不是由小到大。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <unordered_map>
#define rep(i, a, b) for (int i = (a); i <= (b); i ++ )
#define rop(i, a, b) for (int i = (a); i < (b); i ++ )
#define dep(i, a, b) for (int i = (a); i >= (b); i -- )
#define dop(i, a, b) for (int i = (a); i > (b); i -- ) using namespace std; using LL = long long;
using PII = pair<int, int>;
using PLL = pair<LL, LL>; const int N = 100010;
int n, m, w[N];
vector<int> v;
struct Queries {
int op, v;
}q[N];
unordered_map<int, int> cnt; int find(int x) {
return lower_bound(v.begin(), v.end(), x) - v.begin();
} struct Tree {
int l, r;
int sum;
}tr[N << 2]; #define ls u << 1
#define rs u << 1 | 1 void pushup(int u) {
tr[u].sum = tr[ls].sum + tr[rs].sum;
}
void build(int u, int l, int r) {
tr[u] = {l, r, 0};
if (l == r) {
tr[u].sum = cnt[v[r]];
return;
}
int mid = l + r >> 1;
build(ls, l, mid), build(rs, mid + 1, r);
pushup(u);
} void modify(int u, int x) {
if (x == tr[u].l && x == tr[u].r) {
tr[u].sum ++ ;
return;
}
int mid = tr[u].l + tr[u].r >> 1;
modify(x <= mid ? ls : rs, x);
pushup(u);
} int query(int u, int k) {
if (tr[u].l == tr[u].r) return v[tr[u].l];
if (tr[rs].sum < k) return query(ls, k - tr[rs].sum);
else return query(rs, k);
} int main() {
scanf("%d%d", &n, &m);
rep(i, 1, n) scanf("%d", &w[i]);
rep(i, 1, m) scanf("%d%d", &q[i].op, &q[i].v);
rep(i, 1, n) v.push_back(w[i]), cnt[w[i]] ++ ;
rep(i, 1, m) v.push_back(q[i].v);
sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());
// 离散化 build(1, 0, v.size() - 1); rep(i, 1, m) {
if (q[i].op == 1) printf("%d\n", query(1, q[i].v));
else modify(1, find(q[i].v));
} return 0;
}

算是板子吧,挺好写的。(为什么块状链表跑的比线段树还快?)

P2343 宝石管理系统 做题记录的更多相关文章

  1. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

  2. project euler做题记录

    ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...

  3. Sam做题记录

    Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...

  4. 退役IV次后做题记录

    退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...

  5. 退役III次后做题记录(扯淡)

    退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...

  6. 退役II次后做题记录

    退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...

  7. BJOI做题记录

    BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...

  8. FJOI2017前做题记录

    FJOI2017前做题记录 2017-04-15 [ZJOI2017] 树状数组 问题转化后,变成区间随机将一个数异或一,询问两个位置的值相等的概率.(注意特判询问有一个区间的左端点为1的情况,因为题 ...

  9. [日记&做题记录]-Noip2016提高组复赛 倒数十天

    写这篇博客的时候有点激动 为了让自己不颓 还是写写日记 存存模板 Nov.8 2016 今天早上买了两个蛋挞 吃了一个 然后就做数论(前天晚上还是想放弃数论 但是昨天被数论虐了 woc noip模拟赛 ...

  10. noip做题记录+挑战一句话题解?

    因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...

随机推荐

  1. Centos7使用s3fs-fuse挂载minio对象存储实践

    Centos7使用s3fs-fuse挂载minio对象存储实践 事前准备 主机可以访问到对象存储API.例如minio默认的9000端口 主机安装好s3fs软件 已在minio上创建存储桶 安装s3f ...

  2. Springboot简单功能示例-4 自定义加密进行登录验证

    springboot-sample 介绍 springboot简单示例 跳转到发行版 查看发行版说明 软件架构(当前发行版使用) springboot hutool-all 非常好的常用java工具库 ...

  3. Codechef - Longest AND Subarray(位运算)

    题目大意   给定一个正整数N,其序列为[1, 2, 3, ..., N],找到一个长度最大的连续子列,使得其所有元素取与运算的结果为正(最终输出只需要输出最大长度即可). 思路   刚开始可能并不好 ...

  4. Linux系列教程——Linux磁盘管理、Linux进程管理、Linux系统服务、 Linux计划任务

    @ 目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...

  5. Anaconda虚拟环境配置Python库与Spyder编译器

      本文介绍在Anaconda中,为Python的虚拟环境安装第三方库与Spyder等配套软件的方法.   在文章创建Anaconda虚拟Python环境的方法中,我们介绍了在Anaconda环境下, ...

  6. 2022-10-22 CSP赛前隔离时的模拟赛 1:3

    T1 一个比较迷的数论题,推柿子. 首先能得到基础柿子: \[m\cdot x + \frac{m(m-1)\cdot y}{2} = n \] 略微化简得: \[2x + (m-1)y = \fra ...

  7. 洛谷1451(BFS)

    #include"bits/stdc++.h" using namespace std; int mp[110][110]; bool vis[110][110]; int dx[ ...

  8. logback java动态配置【动态修改日志级别,动态修改appender】(转)

    logback 动态配置 写在前面在做java日志之前,强烈建议大家读一下这篇java日志的前世今生,对理清java日志框架很有帮助!1奉上地址: 一个著名的日志系统是怎么设计出来的 然后说一下,为啥 ...

  9. [转]深入HBase架构解析

    HBase架构讲解非常清晰的一篇文章,转自 http://www.blogjava.net/DLevin/archive/2015/08/22/426877.htmlhttp://www.blogja ...

  10. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-25-处理单选和多选按钮-中篇

    1.简介 上一篇中宏哥讲解和介绍的单选框有点多,而且由于时间的关系,宏哥决定今天讲解和分享复选框的相关知识. 2.什么是单选框.复选框? 单选按钮一般叫raido button,就像我们在电子版的单选 ...