\(\text{Solution}\)

一看有区间赋值直接上 \(ODT\)

\(\text{Code}\)

#include <cstdio>
#include <iostream>
#include <set>
#define re register
using namespace std; int n; struct node{
int l, r; mutable int v;
inline node(int l, int r, int v):l(l), r(r), v(v){};
inline bool operator < (const node &a) const {return l < a.l;}
};
set<node> T;
typedef set<node>::iterator IT;
inline IT split(int x)
{
if (x > n) return T.end();
IT it = --T.upper_bound((node){x, 0, 0});
if (it->l == x) return it;
int l = it->l, r = it->r, v = it->v;
T.erase(it), T.insert((node){l, x - 1, v});
return T.insert((node){x, r, v}).first;
}
inline void assign(int l, int r, int v)
{
IT itr = split(r + 1), itl = split(l);
T.erase(itl, itr), T.insert(node{l, r, v});
}
inline int Query(int l, int r, int v)
{
IT itr = split(r + 1), itl = split(l); int res = 0;
for(re IT it = itl; it != itr; ++it)
if (it->v == v) res += it->r - it->l + 1;
return res;
} inline void read(int &x)
{
x = 0; char ch = getchar(); int f = 1;
for(; !isdigit(ch); f = (ch == '-' ? -1 : f), ch = getchar());
for(; isdigit(ch); x = (x<<3) + (x<<1) + (ch^48), ch = getchar());
x *= f;
} int main()
{
read(n);
for(re int i = 1, x; i <= n; i++) read(x), T.insert((node){i, i, x});
for(re int i = 1, l, r, v; i <= n; i++)
read(l), read(r), read(v), printf("%d\n", Query(l, r, v)), assign(l, r, v);
}

最新文章

  1. HTML5 oninput实时监听输入框值变化的完美方案
  2. debian/ubuntu安装桌面环境
  3. jquery 中的 offset()
  4. Asp.Net MVC4入门指南(5):从控制器访问数据模型
  5. bootstrap学习总结-01 环境准备
  6. Codeforces Beta Round #5
  7. 如何在安装32位Oracle客户端组件的情况下以64位模式运行
  8. android UI进阶之实现listview的下拉加载
  9. Mac OS X 软件推荐
  10. oracle insert &amp;字符插入问题
  11. Spring通过AOP实现对Redis的缓存同步
  12. ezw证件照芯片压缩算法
  13. 解决SQLServer 2008 日志无法收缩,收缩后大小不改变
  14. java面向对象--抽象类和接口
  15. ⑤bootstrap表格使用基础案例
  16. python 之 初识模块
  17. enex 转 md 格式的几种方式(免费版/氪金版)
  18. 电磁波、无线电、802、WLAN及WiFi的区别与联系
  19. CODEFORCES掉RATING记 #5
  20. 解决iOS第三方SDK之间重复的symbols问题

热门文章

  1. TornadoFx的TableView组件使用
  2. 【Shell案例】【awk map计数&amp;sort按指定列排序】9、统计每个单词出现的个数
  3. python文件名解析---从文件名获得分类类别
  4. HTTP协议图文简述--HTTP/HTTPS/HTTP2
  5. django.core.exceptions.ImproperlyConfigured: Application labels aren&#39;t unique, duplicates: rest_framework_swagger
  6. js将数组内属性值相同的项合并成二维数组
  7. 工业数据分析为什么要用FusionInsight MRS IoTDB?
  8. Less-1(GET字符型)
  9. [python] 基于matplotlib实现圆环图的绘制
  10. DVWA靶场实战(四)——File Inclusion