当前位置: 首页 > news >正文

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

带修莫队。那是什么。能吃吗。

我们可以把区间数颜色转化为二维数点,带修就是动态二位数点,即三维数点。

然后随便做了。

#include <bits/stdc++.h>
#define llong long long
#define N 4000006
using namespace std;#define bs (1<<20)
char buf[bs], *p1, *p2;
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,bs,stdin),p1==p2)?EOF:*p1++)
template<typename T>
inline void read(T& x){x = 0; int w = 1;char ch = gc();while(ch < '0' || ch > '9'){if(ch == '-') w = -w;ch = gc();}while(ch >= '0' && ch <= '9')x = (x<<3)+(x<<1)+(ch^48), ch = gc();x *= w;
}
inline void read(char& ch){ch = gc();while(ch == ' ' || ch == '\r' || ch == '\n') ch = gc();
}
template<typename T, typename ...Args>
inline void read(T& x, Args& ...y){return read(x), read(y...);
}int n, q, cnt, qcnt;
int b[N];
struct Node{int t, x, y, w;int id;
} a[N];
int ans[N];set<int> col[N];int fwk[N];
#define lowbit(x) (x&-x)
inline void modify(int x, int k){for(int i = x; i < N; i += lowbit(i)) fwk[i] += k;}
inline int query(int x){int res = 0; for(int i = x; i; i ^= lowbit(i)) res += fwk[i]; return res;}
inline void clear(int x){for(int i = x; i < N; i += lowbit(i)) fwk[i] = 0;}#define mid ((l+r)>>1)
inline void cdq(int l, int r){if(l == r) return;cdq(l, mid), cdq(mid+1, r);sort(a+l, a+mid+1,   [&](Node o1, Node o2){return o1.x<o2.x;});sort(a+mid+1, a+r+1, [&](Node o1, Node o2){return o1.x<o2.x;});int i = l, j = mid+1;while(j <= r){while(i <= mid && a[i].x <= a[j].x){if(!a[i].id) modify(a[i].y, a[i].w);++i;}if(a[j].id) ans[a[j].id] += query(a[j].y)*a[j].w;++j;}for(int k = l; k < i; ++k)if(!a[k].id) clear(a[k].y);return;
}int main(){freopen("in.txt", "r", stdin);read(n, q);for(int i = 1; i <= n; ++i) read(b[i]);for(int i = n; i >= 1; --i){a[++cnt] = {0, i, i, 1, 0};auto it = col[b[i]].upper_bound(i);if(it != col[b[i]].end()){int pos = *it;a[++cnt] = {0, pos, i, -1, 0};}col[b[i]].insert(i);}for(int i = 1; i <= q; ++i){char op; int x, y;read(op, x, y);if(op == 'R'){// Eraseint pos1 = 0, pos2 = 0;set<int>::iterator it1, it2;it1 = it2 = col[b[x]].lower_bound(x);if(it1 != col[b[x]].begin()) pos1 = *--it1;if(++it2 != col[b[x]].end()) pos2 = *it2;if(pos1) a[++cnt] = {i, pos1, x, 1, 0};if(pos2) a[++cnt] = {i, x, pos2, 1, 0};if(pos1 && pos2) a[++cnt] = {i, pos1, pos2, -1, 0};col[b[x]].erase(x);// Insertb[x] = y, pos1 = pos2 = 0;it1 = it2 = col[b[x]].lower_bound(x);if(it1 != col[b[x]].begin()) pos1 = *--it1;if(it2 != col[b[x]].end())   pos2 = *it2;if(pos1) a[++cnt] = {i, pos1, x, -1, 0};if(pos2) a[++cnt] = {i, x, pos2, -1, 0};if(pos1 && pos2) a[++cnt] = {i, pos1, pos2, 1, 0};col[b[x]].insert(x);}if(op == 'Q'){++qcnt;a[++cnt] = {i, y,   y,   1,  qcnt};if(x == 1) continue;a[++cnt] = {i, x-1, y,   -1, qcnt};a[++cnt] = {i, y,   x-1, -1, qcnt};a[++cnt] = {i, x-1, x-1, 1,  qcnt};}}sort(a+1, a+cnt+1, [&](Node o1, Node o2){return o1.t<o2.t || (o1.t==o2.t&&(o1.x<o2.x||(o1.x==o2.x&&(o1.y<o2.y||(o1.y==o2.y&&o1.id<o2.id)))));});cdq(1, cnt);for(int i = 1; i <= qcnt; ++i) printf("%d\n", ans[i]);return 0;
}
http://www.jsqmd.com/news/417624/

相关文章:

  • 倪海厦
  • 湖北中艾农业集团是做什么的? - 中媒介
  • 世纪联华购物卡回收时需要注意哪些问题呢? - 京回收小程序
  • 2026 Q1临沂财税公司 TOP5 推荐(九县三区精准覆盖)代理记账・工商注册口碑榜单 - 品牌智鉴榜
  • 监测并记录linux的进程jvm内存和gc信息的脚本
  • 农家散养鸡烧鸡 - 中媒介
  • 2月必看!市场口碑好的LED草坪灯品牌推荐,照亮你的草坪,工矿灯安装/老式工矿灯/不锈钢防水壁灯,草坪灯生产厂家推荐 - 品牌推荐师
  • 2026年企业必看!阿里企业邮箱授权销售中心电话与服务详解 - 品牌2025
  • 探讨婚纱摄影选购,上海三川摄影费用贵吗? - mypinpai
  • 东美阿胶批发代理 - 中媒介
  • 企业必看2026年企微服务热线指南:人工客服接通技巧 - 品牌2025
  • 2026年旗杆厂家实力推荐:沈阳福道金属制品有限责任公司,锥形/电动/不锈钢旗杆等全系供应 - 品牌推荐官
  • openclaw配置浏览器功能报token校验失败
  • 如何查看PG数据库主机信息
  • 如何开启和关闭PG数据库告警日志
  • 聊聊靠谱的塑料制品供应商,内蒙古选哪家性价比高? - 工业品牌热点
  • 2026年推荐一下手工西服定制哪里有,靠谱的店分享 - mypinpai
  • 2026采血管设备厂家推荐:湖南鸿朗自动化设备有限公司,全系采血管组装设备及生产线供应 - 品牌推荐官
  • 分析鑫钺传动减速机,浙江地区性价比高的产品有哪些推荐? - 工业设备
  • 2026阿里企业邮箱优惠价格咨询电话 企业开通享特惠套餐 - 品牌2025
  • 2026年防水透气膜厂家推荐:昆山艾尤诺新材料科技,多领域应用膜产品全解析 - 品牌推荐官
  • 2026年盘点红点奖申请流程熟悉的代理公司,靠谱排名揭晓 - 工业品网
  • 2026年旋转闪蒸干燥机厂家推荐:常州市范氏干燥设备有限公司,全品类高效节能设备供应 - 品牌推荐官
  • 2026年全国靠谱扫地机厂家推荐榜 智能节能适配多场景 实用省心更具性价比 - 深度智识库
  • 工作装定制厂家推荐,更上制服在无锡性价比高吗 - myqiye
  • 有轨电车交通涂料供应商哪家好,深度剖析 - mypinpai
  • 2026 西安搬家公司选择终极指南:本地适配才是王道,实测不踩雷 - 深度智识库
  • 2026年绝缘陶瓷管/氧化铝绝缘陶瓷支架厂家推荐:宜兴胜达耐火陶瓷实力供应 - 品牌推荐官
  • 聊聊天津家庭全屋墙面乳胶漆刷新服务,艺豪装饰多少钱? - 工业品网
  • 2026年马尔济斯/约克夏/西高地/可卡布/马尔泰/伯恩山宠物狗推荐:上海宠颜宠物猫狗售卖 - 品牌推荐官