解题:HEOI 2012 采花
题外话:LYD说他当时看错题了,考场爆零了,然后有了作诗这道题=。=
离线处理询问,按右端点递增排序,然后对于每种花$flw[i]$,我们求一个$pre[flw[i]]$表示这种花上一次出现的位置。那么扫描每一朵花,然后一个询问右端点的花出现的贡献就是使得$[pre[pre[i]]+1,pre[i]]$这段可以多采到至少$1$朵花,当扫到询问左端点就单点统计答案。用一个数据结构进行区间修改+单点求和即可
洛谷不知道为啥把数据加强到了$2*10^6$,听说是卡莫队(不知所淦),然后把正常的线段树也给卡掉了,遂稍微卡了卡常+O2,最慢一个点1600+ms水过(还可以继续优化的说)
// luogu-judger-enable-o2
#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
struct a{int l,r,id,ans;}p[N];
int flw[N],pre[N],las[N],outp[N];
int val[*N],laz[*N];
int n,c,m;
bool cmp(a x,a y)
{
return x.r==y.r?x.l<y.l:x.r<y.r;
}
bool com(a x,a y)
{
return x.id<y.id;
}
inline int read()
{
int ret=;
char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch)) ret=(ret<<)+(ret<<)+(ch^),ch=getchar();
return ret;
}
inline void release(int nde,int l,int r)
{
if(laz[nde])
{
int mid=(l+r)/,ls=*nde,rs=*nde+;
laz[ls]+=laz[nde],laz[rs]+=laz[nde];
val[ls]+=(mid-l+)*laz[nde],val[rs]+=(r-mid)*laz[nde]; laz[nde]=;
}
}
void change(int nde,int l,int r,int nl,int nr)
{
if(l>nr||r<nl)
return ;
else if(l>=nl&&r<=nr)
val[nde]+=r-l+,++laz[nde];
else
{
int mid=(l+r)/,ls=*nde,rs=*nde+; release(nde,l,r);
change(ls,l,mid,nl,nr),change(rs,mid+,r,nl,nr);
val[nde]=val[ls]+val[rs];
}
}
int query(int nde,int l,int r,int pos)
{
if(l==pos&&r==pos) return val[nde]; release(nde,l,r);
int mid=(l+r)/,lr=(pos<=mid),nd=lr?(nde<<):(nde<<|);
int nl=lr?l:(mid+);int nr=lr?mid:r;
return query(nd,nl,nr,pos);
}
int main ()
{
register int i,p1=;
n=read(),c=read(),m=read();
for(i=;i<=n;i++) flw[i]=read();
for(i=;i<=m;i++) p[i].id=i,p[i].l=read(),p[i].r=read();
for(i=;i<=n;i++) pre[i]=las[flw[i]],las[flw[i]]=i;
sort(p+,p++m,cmp);
for(i=;i<=n;i++)
{
change(,,n,pre[pre[i]]+,pre[i]);
while(p1<=m&&p[p1].r==i)
p[p1].ans=query(,,n,p[p1].l),p1++;
}
for(i=;i<=m;i++) outp[p[i].id]=p[i].ans;
for(i=;i<=m;i++) printf("%d\n",outp[i]);
return ;
}
解题:HEOI 2012 采花的更多相关文章
- [BZOJ 2743] [HEOI 2012] 采花
Description 萧芸斓是Z国的公主,平时的一大爱好是采花.今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了 \(n\) 朵花,花有 \(c\) 种颜色(用整数 \ ...
- [HEOI 2012] 采花
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2743 [算法] 首先预处理nxt[]数组 , 其中 , nxt[i]表示下一个和i号 ...
- [ SDOI 2009 ] HH的项链 & [ HEOI 2012 ] 采花
\(\\\) \(Description\) 给出一个长为\(N\)的序列,\(M\)次询问区间\([L_i,R_i]\)内不同数字的个数. \(N\in [1,5\times 10^4]\),\(M ...
- 采花 flower
采花 flower 题目描述 萧芸斓是 Z 国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳 了 n 朵花,花有 c 种颜色(用整数 1- ...
- 洛谷 P2056 BZOJ 2743 [HEOI2012]采花
//表示真的更喜欢洛谷的题面 题目描述 萧芸斓是 Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了 n 朵花,花有 c 种颜色(用整数 ...
- BZOJ 2743 【HEOI2012】 采花
题目链接:采花 这道题一眼看去,一个很显然的想法就是莫队.但是数据范围是\(10^6\)级别的,莫队显然已经过不去了. 其实感觉这道题和以前写过的一道题HH的项链很像.只不过那道题要求的是区间出现次数 ...
- 【HEOI2012】采花 BZOJ2743
Description 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一 ...
- 采花 bzoj 2743
采花(1s 128MB)flower [题目描述] 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整 ...
- BZOJ 2743: [HEOI2012]采花
2743: [HEOI2012]采花 Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 2056 Solved: 1059[Submit][Status ...
随机推荐
- tomcat安装及使用详解
常用软件安装及使用目录 资料链接:https://pan.baidu.com/s/1XOUlneFqt-_1tOLSmc-E1g 网盘分享的文件在此 1. Tomcat简介 Tomcat是一个 ...
- [linux] LVM磁盘管理(针对xfs和ext4不同文件系统)
简单来说就是:PV:是物理的磁盘分区VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘LV:也就是从VG中划分的逻辑分区如下图所示PV.VG.LV三者 ...
- 1、数据库与excel表格的数据导入导出
1.居民用户界面中,excel数据导入导出: 2.其他5张表数据显示到本角色主页的container容器中.
- whu 1538 - B - Stones II 01背包
题目链接: http://acm.whu.edu.cn/land/problem/detail?problem_id=1538 Problem 1538 - B - Stones II Time Li ...
- 经验分享(Android开发)
以前对于Android开发一点了解都没有,当然,以前觉得是一件很高大上的事情,而且是我没有能力去做的工作,但是在这个小组合作开发Android后,我觉得我有了很大的进步,当然我的进步也是Android ...
- json反序列化对象
这个是同事研究的wcf中中根据type类型反序列化json的示例 /// <summary> /// json转对象 /// </summary> /// <param ...
- Linux操作系统(一)
操作系统:介于硬件与用户之间的一组程序,方便用户操作,用以管理计算机的所有活动及硬件资源. 1.硬件->内核->系统调用(shell.命令)->应用程序. 只要具备以下几点,即可称为 ...
- spring时间管理
spring时间管理相比Quartz要简单的多,但功能不如quartz强大 spring.xml的配置 <?xml version="1.0" encoding=" ...
- 1105 C程序的推导过程
- [转帖]紧急预警:Globelmposter3.0变种来袭,多行业中招
紧急预警:Globelmposter3.0变种来袭,多行业中招 https://www.csdn.net/article/a/2018-09-04/15959658 CSDN 转载深信服... ...