cf220B莫队
用莫队比直接做快了很多。。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
#include<algorithm>
#define maxn 100005
int a[maxn],b[maxn],c[maxn],num[maxn];//原始数组,排序后的数组,离散后的数组,离散后的数组中元素出现的次数
int s;//块长度
struct Query{
int l,r,id;
bool operator<(const Query &a)const{
if(l/s==a.l/s) return r<a.r;
return l/s<a.l/s;
}
}q[maxn];
int ans[maxn];
int main(){
int n,m;
while(scanf("%d%d",&n,&m)==){
s=(int)sqrt(1.0*n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]),b[i]=a[i];
sort(b+,b+n+);
for(int i=;i<=n;i++)
c[i]=lower_bound(b+,b++n,a[i])-b;
for(int i=;i<=m;i++)
scanf("%d%d",&q[i].l,&q[i].r),q[i].id=i;
sort(q+,q+m+);
//处理每个询问
int l=,r=,tmp=;
for(int i=;i<=m;i++){
while(r<q[i].r){//右边界拓展
r++;
if(num[c[r]]==a[r]-) tmp++;
else if(num[c[r]]==a[r]) tmp--;
num[c[r]]++;
}
while(r>q[i].r){//右边界往回缩
if(num[c[r]]==a[r]) tmp--;
else if(num[c[r]]==a[r]+) tmp++;
num[c[r]]--;
r--;
}
while(l<q[i].l){//左边界往回缩
if(num[c[l]]==a[l]) tmp--;
else if(num[c[l]]==a[l]+) tmp++;
num[c[l]]--;
l++;
}
while(l>q[i].l){//左边界拓展
l--;
if(num[c[l]]==a[l]-) tmp++;
else if(num[c[l]]==a[l]) tmp--;
num[c[l]]++;
}
ans[q[i].id]=tmp;
}
for(int i=;i<=m;i++)
printf("%d\n",ans[i]);
}
return ;
}
cf220B莫队的更多相关文章
- BZOJ 3289: Mato的文件管理[莫队算法 树状数组]
3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 2399 Solved: 988[Submit][Status][Di ...
- NBUT 1457 莫队算法 离散化
Sona Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Submit Status Practice NBUT 145 ...
- 【填坑向】bzoj2038小Z的袜子 莫队
学莫队必做题,,,但是懒得写.今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7687 Solved: 3516[Subm ...
- NPY and girls-HDU5145莫队算法
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description ...
- Codeforces617 E . XOR and Favorite Number(莫队算法)
XOR and Favorite Number time limit per test: 4 seconds memory limit per test: 256 megabytes input: s ...
- Bzoj 2038---[2009国家集训队]小Z的袜子(hose) 莫队算法
题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色 ...
- 【BZOJ 3735】苹果树 树上莫队(树分块+离线莫队+鬼畜的压行)
2016-05-09 UPD:学习了新的DFS序列分块,然后发现这个东西是战术核导弹?反正比下面的树分块不知道要快到哪里去了 #include<cmath> #include<cst ...
- 【BZOJ 2038】【2009 国家集训队】小Z的袜子(hose) 分块+莫队
$SDOI2016Day-1$临时抱佛脚学习一下莫队算法$233$ 我预感到自己省选要爆0hhh #include<cmath> #include<cstdio> #inclu ...
随机推荐
- springmvc的controller中使用@Transactional无效
最近看mybatis的时候做了一个练习,但是进行事务处理的时候出了问题,如下 package com.henu.lz.controller; import org.springframework.be ...
- python3 获取Linux系统信息
系统信息 import platform platform.uname() platform.architecture() CPU信息 /proc/cpuinfo文件包含了系统处理器单元的信息. #! ...
- CentOS 6.9/7通过yum安装指定版本的MySQL
一.安装CENTOS 6 # wget http://repo.mysql.com/mysql57-community-release-el6.rpm && rpm -ivh mysq ...
- dubbo注册服务和消费服务---入门篇
本文介绍如何用dubbo+zk来实现一个注册服务 + 消费服务的入门小demo 需要环境:zk服务器 两个maven项目,一个负责提供服务,一个负责消费服务. dubbo-service 服务端 po ...
- .NET MVC中的数据验证
一 概述 关于数据验证和数据注解,是任何软件系统不可小觑的必要模块,主要作用是为了保证数据安全性.防止漏洞注入和网络攻击.从数据验证的验证方式来说,我们一般分为客户端验证和服务端验证(或者两种方式相 ...
- UESTC - 1167 一句话题意
---恢复内容开始--- 题目链接:https://vjudge.net/problem/UESTC-1167 请问从n*n的正方形左下角走到右上角且不越过对角线的情况总数模m的结果~ 分析: 还记得 ...
- Java编程思想 学习笔记1
一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆 ...
- Python官方操作Excel文档
xlwt 1.3.0 Downloads ↓ Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 ...
- 2017-2018-2 165X 『Java程序设计』课程 助教总结
2017-2018-2 165X 『Java程序设计』课程 助教总结 本学期完成的助教工作主要包括: 编写300道左右测试题,用于蓝墨云课下测试: 发布博客三篇:<2017-2018-2 165 ...
- SRS+flv.js打造兼容性较高的直播、点播平台
**************************************************************************************************** ...