博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[luogu1972][bzoj1878][SDOI2009]HH的项链【莫队+玄学卡常】
阅读量:4579 次
发布时间:2019-06-08

本文共 1910 字,大约阅读时间需要 6 分钟。

题目大意

静态区间查询不同数的个数。

分析

好了,成功被这道题目拉低了AC率。。。

打了莫队T飞掉了,真的是飞掉了QwQ。
蒟蒻想不出主席树的做法,就换成了莫队。。。


很多人都不知道莫队是什么。。。

一句话概括莫队:离线询问分块排序,玄学降低复杂度


那么这道题目就是简单的莫队模板套一下就好了,每一次看看更新的点是不是会对答案造成贡献就可以过掉了。

但是复杂度很明显是\(Q(\sqrt{n}m)\),成功T掉,加上玄学卡常,破罐子破摔了100+终于过掉了。

#include 
#define ll long long#define ms(a, b) memset(a, b, sizeof(a))#define inf 0x3f3f3f3f#define N 500005#define M 1000005using namespace std;template
inline void read(T &x) { x = 0; T fl = 1; char ch = 0; for (; ch < '0' || ch > '9'; ch = getchar()) if (ch == '-') fl = -1; for (; ch >= '0' && ch <= '9'; ch = getchar()) x = (x << 1) + (x << 3) + (ch ^ 48); x *= fl;}int buf[1 << 20];template
inline void write(T x) { if (x < 0) putchar('-'), x = -x; if (x > 9) write(x / 10); putchar(x % 10 + '0');}struct node { int l, r, bl, id; bool operator <(const node &rhs) const { return (bl == rhs.bl)? ((bl & 1)? (r < rhs.r): (r > rhs.r)): (bl < rhs.bl); }}q[N];int block, res = 0, n, m;int clo[M], a[N], ans[N];inline void update(register int x, register int opt) { clo[a[x]] += opt; if (opt == -1) if (clo[a[x]] == 0) res += opt; if (opt == 1) if (clo[a[x]] == 1) res += opt;}int main() { read(n); block = sqrt(n); for (register int i = 1; i <= n; ++ i) read(a[i]); read(m); for (register int i = 1; i <= m; ++ i) { read(q[i].l); read(q[i].r); q[i].bl = (q[i].l + 1) / block; q[i].id = i; } sort(q + 1, q + 1 + m); register int l = 1, r = 0; for (register int i = 1; i <= m; ++ i) { while (r < q[i].r) update(++ r, 1); while (r > q[i].r) update(r --, -1); while (l > q[i].l) update(-- l, 1); while (l < q[i].l) update(l ++, -1); ans[q[i].id] = res; } for (register int i = 1; i <= m; ++ i) write(ans[i]), putchar('\n'); return 0;}

转载于:https://www.cnblogs.com/chhokmah/p/10629018.html

你可能感兴趣的文章
RemoveDuplicatesFromSortedArrayI II,移除有序数组里的重复元素以及移除数组里的某个元素...
查看>>
Minimum Depth of Binary Tree,求树的最小深度
查看>>
解决Web部署 svg/woff/woff2字体 404错误
查看>>
fiddler 抓取 nodejs
查看>>
1.Nginx服务应用
查看>>
MySQL基础
查看>>
凹凸贴图与法线贴图
查看>>
sqlserver跨服务器数据库sql语句
查看>>
设计模式-结构型模式,外观模式(6)
查看>>
Trie模版
查看>>
2018HDU多校训练-3-Problem F. Grab The Tree
查看>>
2016012032四则运算网页版结对项目报告
查看>>
淘宝专业版改基础版方法
查看>>
[转]ARM Pipeline
查看>>
[转]Blocking Code Injection on iOS and OS X
查看>>
自动化测试
查看>>
vue $options 获取自定义属性
查看>>
Vue避免 v-if 和 v-for 用在一起
查看>>
TraceSource记录程序日志
查看>>
【Source教程】GCFScape下载安装与使用
查看>>