博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ2743 HEOI2012采花(离线+树状数组)
阅读量:4351 次
发布时间:2019-06-07

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

  如果能够把所有区间内第二次出现某颜色的位置标记出来,树状数组查询一下就可以了。

  考虑离线。按左端点从小到大排序,不断移动左端点并更新第二次出现的位置。

#include
#include
#include
#include
#include
#include
using namespace std;int read(){ int x=0,f=1;char c=getchar(); while (c<'0'||c>'9') { if (c=='-') f=-1;c=getchar();} while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f;}#define N 2000010int n,m,c,a[N],nxt[N],p[N],tree[N],ans[N],flag[N];struct data{ int l,r,i; bool operator <(const data&a) const { return l
q[i-1].l) add(nxt[q[i-1].l],-1),add(nxt[nxt[q[i-1].l]],1),q[i-1].l++; ans[q[i].i]=sum(q[i].r)-sum(q[i].l-1); } for (int i=1;i<=m;i++) printf("%d\n",ans[i]); return 0;}

 

转载于:https://www.cnblogs.com/Gloid/p/9608875.html

你可能感兴趣的文章
IOS手势不识别
查看>>
HDU 1599 find the mincost route(floyd求最小环 无向图)
查看>>
hibernate模糊查询-Restrictions.ilike & Expression.like
查看>>
python @property
查看>>
Java学习之异常处理
查看>>
combox的DispalyMember和ValueMember属性的测试
查看>>
Start Developing Mac Apps -- Human Interface Design 用户界面设计
查看>>
linux下安装Mongodb
查看>>
Page.RegisterStartupScript和Response.Write的区别。
查看>>
hdu4348区间更新的主席树+标记永久化
查看>>
bzoj3261: 最大异或和 可持久化trie
查看>>
ZOJ 2532 Internship
查看>>
HDU 3452 Bonsai
查看>>
[Erlang12] Mnesia分布式应用
查看>>
图的遍历 | 1013 连通块块数
查看>>
Kinect 开发 —— 进阶指引(上)
查看>>
python学习笔记(六)time、datetime、hashlib模块
查看>>
uva489(需要考虑周全)
查看>>
C-关键字(二)
查看>>
排序笔记
查看>>