bzoj2120: 数颜色 &&bzoj2453: 维护队列
题目大意:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define maxn 1000500
using namespace std;
int n,m,blo,num,q;
int pre[maxn],c[maxn],b[maxn],last[maxn],pos[maxn];
int read()
{
int x=; char ch; bool bo=;
while (ch=getchar(),ch<''||ch>'') if (ch=='-') bo=;
while (x=x*+ch-'',ch=getchar(),ch>=''&&ch<='');
if (bo) return -x; return x;
}
void resort(int x)
{
int l=(x-)*blo+,r=min(x*blo,n);
for (int i=l; i<=r; i++) pre[i]=b[i];
sort(pre+l,pre+r+);
}
int find(int x,int val)
{
int l=blo*(x-)+,r=min(blo*x,n); int first=l;
while (l<=r)
{
int mid=(l+r)>>;
if (pre[mid]<val) l=mid+;
else r=mid-;
}
return l-first;
}
int ask(int l,int r)
{
int sum=;
if (pos[l]==pos[r])
{
for (int i=l; i<=r; i++) if (b[i]<l) sum++;
}
else
{
for (int i=l; i<=pos[l]*blo; i++) if (b[i]<l) sum++;
for (int i=r; i>=(pos[r]-)*blo+; i--) if (b[i]<l) sum++;
}
for (int i=pos[l]+; i<pos[r]; i++) sum+=find(i,l);
return sum;
}
void change(int x,int y)
{
for (int i=; i<=n; i++) last[c[i]]=;
c[x]=y;
for (int i=; i<=n; i++)
{
int t=b[i];
b[i]=last[c[i]];
last[c[i]]=i;
if (t!=b[i]) resort(pos[i]);
}
}
void init()
{
n=read(); q=read();
blo=((int)sqrt(n));
for (int i=; i<=n; i++) c[i]=read(),pos[i]=(i-)/blo+;
for (int i=; i<=n; i++)
{
b[i]=last[c[i]];
last[c[i]]=i;
}
num=(n-)/blo+;
for (int i=; i<=num; i++) resort(i);
}
void solve()
{
char ch[]; int x,y;
for (int i=; i<=q; i++)
{
scanf(" %s",ch+); x=read(); y=read();
if (ch[]=='Q') printf("%d\n",ask(x,y));
else change(x,y);
}
}
int main()
{
init();
solve();
}
bzoj2120: 数颜色 &&bzoj2453: 维护队列的更多相关文章
- [BZOJ2120] 数颜色 && [bzoj2453] 维护队列(莫队 || 分块)
传送门 只有第一个,第二个权限题. 分块,然而wa,没看出来错在哪里,有时间再看. #include <cmath> #include <cstdio> #include &l ...
- Bzoj 2120: 数颜色 && 2453: 维护队列 莫队,分块,bitset
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 2645 Solved: 1039[Submit][Status][Discuss] ...
- BZOJ 2120 数颜色&2453 维护队列 [带修改的莫队算法]【学习笔记】
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 3665 Solved: 1422[Submit][Status][Discuss] ...
- Luogu P1903 [国家集训队]数颜色 or 维护队列
标准的带修莫队...咕到了现在$qwq$ 莫队是对询问排序来优化复杂度的(不带修就是对询问区间$[l,r]$排序).. 那么现在带修了,我们再可以维护一个时间维度$tm$:对于每个询问,每次回答前先检 ...
- BZOJ2120 数颜色 【带修莫队】
BZOJ2120 数颜色 Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到 ...
- [bzoj2453]维护队列_带修改莫队
维护队列 bzoj-2453 题目大意:给定一个n个数序列,支持查询区间数的种类数,单点修改.不强制在线. 注释:$1\le n,m\le 10^5$. 想法: 带修改莫队裸题. 如果没有修改操作的话 ...
- BZOJ2453: 维护队列
2453: 维护队列 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 183 Solved: 89[Submit][Status] Descripti ...
- bzoj2120 数颜色 莫队 带修改
[bzoj2120]数颜色 Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔 ...
- BZOJ2120 数颜色 【带修改莫队】
2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MB Submit: 6579 Solved: 2625 [Submit][Status][Discus ...
随机推荐
- HBase集群安装
1.HBase的机群搭建过程(在原来的hadoop0上的HBase伪分布基础上进行搭建)1.1 集群结构,主节点(hmaster)是hadoop0,从节点(region server)是hadoop1 ...
- jq之简单的表单验证
<body> <form method="post" action=""> <div class="int"& ...
- MySQL5.1升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to MySQL server during query【转载】
转载: MySQL5.5升级5.6后,执行grant出错:ERROR 2013 (HY000): Lost connection to -mysql教程-数据库-壹聚教程网http://www.111 ...
- nginx php版本隐藏
配置完一台服务器后,并不是就可以高枕无忧了,前不久刚刚爆发的PHP 5.3.9版本的漏洞也搞得人心惶惶,所以说经常关注安全公告并及时升级服务器也是必要的.一般来说,黑客攻击服务器的首要步骤就是收集信息 ...
- jquery选中checkbox多选项并添加到文本框中
<script> function check(){ var dd = ""; if($("input[type='checkbox'][name='moke ...
- MyEclipse报错 Building workspace has encountered a problem Errors occurred during the build 的2种解决方法
1: Building workspace has encountered a problem Errors occurred during the build 如果报错这个 那么有可能是jar包,报 ...
- ASP php获取文件URL地址等方法
$_SERVER["HTTP_REFERER"] rss中可用 echo next(explode("=", $_SERVER["QUERY_STRI ...
- Winform带dataGridview的Combox控件
调用控件: public partial class Form1 : Form { public Form1() { InitializeComponent(); //---------------- ...
- base库--- 一个应用JS
1 /** * Created by Administrator on 2014/6/3 0003. */ $(function () { //个人中心下拉 $('.js-hd-right').hov ...
- Coloring Trees
Coloring Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...