随手点开一个题。

咦,这不是裸的动态开点线段树吗?写一个写一个……

Code:

#include <cstdio>
#include <cstring>
using namespace std;const int N = 3e5 + 5;int n, qn, a[N];inline void read(int &X) {X = 0;char ch = 0;int op = 1;for(; ch > '9' || ch < '0'; ch = getchar())if(ch == '-') op = -1;for(; ch >= '0' && ch <= '9'; ch = getchar())X = (X << 3) + (X << 1) + ch - 48;X *= op;
} struct Node {int lc, rc, sum;
};namespace PSegT {int root[N], nodeCnt;Node s[N * 80];#define mid ((l + r) >> 1)void up(int p) {if(p) s[p].sum = s[s[p].lc].sum + s[s[p].rc].sum;}void ins(int &p, int l, int r, int x) {if(!p) p = ++nodeCnt;if(l == x && x == r) {s[p].sum++;return;}if(x <= mid) ins(s[p].lc, l, mid, x);else ins(s[p].rc, mid + 1, r, x);up(p);}void del(int &p, int l, int r, int x) {if(l == x && x == r) {s[p].sum--;if(s[p].sum == 0) p = 0;return;}if(x <= mid) del(s[p].lc, l, mid, x);else del(s[p].rc, mid + 1, r, x);up(p);if(!s[p].lc && !s[p].rc && !s[p].sum) p = 0; } int query(int p, int l, int r, int x, int y) {if(!p) return 0;if(x <= l && y >= r) return s[p].sum;int res = 0;if(x <= mid) res += query(s[p].lc, l, mid, x, y);if(y > mid) res += query(s[p].rc, mid + 1, r, x, y);return res;}} using namespace PSegT;inline void swap(int &x, int &y) {int t = x;x = y;y = t;
}int main() {read(n), read(qn);nodeCnt = 0;for(int i = 1; i <= n; i++) {read(a[i]);ins(root[a[i]], 1, n, i);}for(int op; qn--; ) {read(op);if(op == 1) {int x, y, c;read(x), read(y), read(c);printf("%d\n", query(root[c], 1, n, x, y));    } else {int x;read(x);del(root[a[x]], 1, n, x);del(root[a[x + 1]], 1, n, x + 1);swap(a[x], a[x + 1]);ins(root[a[x]], 1, n, x);ins(root[a[x + 1]], 1, n, x + 1);}}return 0;
}

写完题的我:

内存太小,差评,卡常数,差评……这sb题……

点开题解:

……大概说的就是我……

没事复杂度其实是一样的

警醒a!!!不要一上手就乱写数据结构……

转载于:https://www.cnblogs.com/CzxingcHen/p/9470370.html

Luogu 3939 数颜色相关推荐

  1. python使用matplotlib可视化:设置坐标轴的范围、设置主次坐标轴刻度、坐标轴刻度显示样式、坐标轴刻度数颜色、小数点位数、坐标轴刻度网格线、线条类型、数据点形状标签、文本字体、颜色、大小等

    python使用matplotlib可视化:设置坐标轴的范围.设置主次坐标轴刻度.坐标轴刻度显示样式.坐标轴刻度数颜色.小数点位数.坐标轴刻度网格线.线条类型.数据点形状标签.文本字体.颜色.大小等 ...

  2. BZOJ2120 数颜色 【带修改莫队】

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MB Submit: 6579  Solved: 2625 [Submit][Status][Discus ...

  3. The 2020 ICPC Asia Macau Regional Contest J. Jewel Grab(数颜色+链表)

    J. Jewel Grab Tartarus _Wallace_ 转化询问:对于一个询问 [s,k],找到一个最长的区间 [s,t],满足区间中出现次数超过一次的元素,的出现次数减一,的和,不超过 k ...

  4. 2120: 数颜色(带修莫队)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2120 2120: 数颜色 Time Limit: 6 Sec  Memory Limit ...

  5. 【算法讲20:Dsu on Tree】树上数颜色 | Lomsat gelral

    [算法讲20:Dsu on Tree] [例一:树上数颜色] · 暴力做法 · · 考虑优化 · ⌈ D s u o n T r e e ⌋ \lceil Dsu\ on\ Tree\rfloor ⌈ ...

  6. P3939 数颜色 (权值线段树)

    题目链接: P3939 数颜色 大致题意 略 解题思路 权值线段树 对于这个题, 由于询问的是, 对于c颜色, [l, r]区间有多少该颜色的兔子. 相当于每次询问的就是一种颜色的区间查询. 假设颜色 ...

  7. 莫队入门例题之持久化莫队:2120: 数颜色

    ·述大意:        多个区间询问,询问[l,r]中颜色的种类数.可以单点修改颜色. ·分析: 莫队可以修改?那不是爆炸了吗. 这类爆炸的问题被称为带修莫队(可持久化莫队). 按照美妙类比思想,可 ...

  8. 洛谷P3939 数颜色 vector乱搞

    洛谷P3939 数颜色 标签 vector乱搞 简明题意 给一个序列(n <= 3e5),现需要你支持两种操作. 询问区间[L,R]中有多少个值为x的数 交换第k和k+1个数 思路 首先,这题需 ...

  9. [国家集训队]数颜色

    [国家集训队]数颜色 题解 很水的一道带修莫队板子题. 我们只需要将操作时间看作是当前询问的第三维,排序后跑莫队即可. 三维莫队块长为n23n^{\frac{2}{3}}n32​时时间复杂度是最优的, ...

  10. P1903-[国家集训队]数颜色/维护队列【带修莫队】

    正题 题目链接:https://www.luogu.com.cn/problem/P1903 题目大意 要求支持两个操作 QLR:Q\ \ L\ \ R:Q  L  R:询问L,RL,RL,R之间有多 ...

最新文章

  1. opencv图像边界的填充
  2. 使用VC++2015 实现XP按钮效果
  3. pyspark DataFrame 转RDD
  4. tomcat:Could not publish to the server. java.lang.IndexOutOfBoundsException
  5. 如何对ABAP SE80 workbench做增强
  6. (转)百度文库浏览器分析及实现(续)
  7. 仿as3的displaylist
  8. './mysql-bin.index' not found (Errcode: 13) 的解决方法
  9. EasyUI Form提交后json数据IE上需要下载(转)
  10. C++工作笔记-对全局变量的进一步认识(何时适合用,何时不适合用)
  11. map函数作用c语言,C语言 · C++中map的用法详解
  12. Bootstrap3 按钮组插件
  13. tesseract 使用说明
  14. c语言如何将字母向下移一格,c语言 如何将一个字符串的前n个字母后移至尾,其他的按顺序前移?...
  15. 【轨迹跟踪】基于matlab无人机轨迹跟踪【含Matlab源码 1152期】
  16. 魔兽怀旧服最新服务器人口,魔兽世界怀旧服服务器人口查询 魔兽世界怀旧服人口比例普查...
  17. BarTender制作圆形标签的方法
  18. delphi 应用程序开发工具
  19. ADS1256 24位ADC模块
  20. 古风系统仙侠文推荐_古风系统仙侠文推荐_不容错过仙侠文强推:文笔超好,挑灯夜读系列,看完顿觉书荒......

热门文章

  1. 自己对香港一卡通的总结
  2. [RK356x] [Firefly-Linux] 10min带你获取、了解与编译Kernel源代码
  3. 国务院公布《关键信息基础设施安全保护条例》
  4. 航芯技术分享 | 了解汽车上的OBD
  5. 解决Referenced file contains errors
  6. led灯条串联图_一种串联控制LED灯条的制作方法
  7. 第三章、主机规划与磁盘分区
  8. RPG像素游戏角色大合集
  9. SpringBoot之九重九阳神功
  10. android跑马灯效果横向,Android TextView 横向滚动(跑马灯效果)