CSU 1515 Sequence (莫队算法)
题意:给n个数,m个询问。每个询问是一个区间,求区间内差的绝对值为1的数对数。
题解:先离散化,然后莫队算法。莫队是离线算法,先按按询问左端点排序,在按右端点排序。
ps:第一次写莫队,表示挺简单的,不过这题之前乱搞一气一直TLE,莫队还是很强大的。
代码:
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
typedef long long ll; struct Node {
int val;
int pos;
bool operator < (const Node x) const {
return val < x.val;
}
} a[];
int b[], c[]; int tmp[];
ll so[]; struct query {
int l, r, id;
bool operator < (const query x) const {
if (l == x.l) return r < x.r;
return l < x.l;
}
} q[]; int update(int x, int d)
{
int ans = d * ((tmp[x+] + tmp[x-]));
if (d < ) tmp[x]--; else tmp[x]++;
return ans;
}
// 我好菜啊
int main()
{
//freopen("in.txt", "r", stdin);
int n, m;
while (~scanf("%d%d", &n, &m)) {
for (int i = ; i <= n; ++i) {
scanf("%d", &a[i].val);
a[i].pos = i;
}
sort(a+, a++n);
b[] = ;for (int i = ; i <= n; ++i) {
if (a[i].val == a[i-].val) b[i] = b[i-];
else if (a[i].val == a[i-].val + ) b[i] = b[i-]+;
else b[i] = b[i-] + ;
}
for (int i = ; i <= n; ++i) {
c[ a[i].pos ] = b[i];
}
memset(tmp, , sizeof tmp); for (int i = ; i < m; ++i) {
scanf("%d%d", &q[i].l,&q[i].r);
q[i].id = i;
}
sort(q, q+m); int pl = , pr = ;
ll ans = ;
for (int i = ; i < m; ++i) {
int id = q[i].id;
int l = q[i].l;
int r = q[i].r;
if (pr < r) for (int i = pr+; i <= r; ++i) ans += update(c[i], );
else for (int i = pr; i > r; --i) ans += update(c[i], -);
if (pl < l) for (int i = pl; i < l; ++i) ans += update(c[i], -);
pr = r, pl = l;
so[id] = ans;
}
for (int i = ; i < m; ++i)
printf("%lld\n", so[i]);
}
return ;
}
CSU 1515 Sequence (莫队算法)的更多相关文章
- SPOJ DQUERY - D-query (莫队算法|主席树|离线树状数组)
DQUERY - D-query Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query ...
- 2018牛客网暑期ACM多校训练营(第一场) J - Different Integers - [莫队算法]
题目链接:https://www.nowcoder.com/acm/contest/139/J 题目描述 Given a sequence of integers a1, a2, ..., an a ...
- HDU-6534-Chika and Friendly Pairs (莫队算法,树状数组,离散化)
链接: https://vjudge.net/contest/308446#problem/C 题意: Chika gives you an integer sequence a1,a2,-,an a ...
- NBUT 1457 莫队算法 离散化
Sona Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Submit Status Practice NBUT 145 ...
- 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-3052】糖果公园 树上带修莫队算法
3052: [wc2013]糖果公园 Time Limit: 200 Sec Memory Limit: 512 MBSubmit: 883 Solved: 419[Submit][Status] ...
随机推荐
- Tornado,展示一下模板渲染
按网上一步一步走一下. 感觉模板和DJANGO的差不多,但更灵活,不限制PYTHON的使用. 前端和后端,这模板使用的规则在哪里呢? import os.path import tornado.htt ...
- CodeChef November Challenge 2014
重点回忆下我觉得比较有意义的题目吧.水题就只贴代码了. Distinct Characters Subsequence 水. 代码: #include <cstdio> #include ...
- winform自定义文件程序-- 不允许所请求的注册表访问权(ZSSQL)
常见问题1: 不允许所请求的注册表访问权 win7.win8 双击程序文件ZSSQL时候会出现 不允许所请求的注册表访问权 的弹窗异常 解决方法:ZSSQL.exe 右键 属性--兼容性--以管理员身 ...
- SSH配置log4j的方法
SSH使用log4j的方便之处 1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下.2. 把log文件定在 /WEB-INF ...
- eCos中的线程与同步
http://blog.csdn.net/ooaven/article/details/6280018 先看一下eCos线程的创建.控制以及优先级的操作这三个方面的知识,主要是对它的实现方式及API做 ...
- Cobalt Strike
http://www.77169.com/hack/201512/222080.shtm
- ArcGIS Engine 连接SQL Server并建立关联
IWorkspaceFactory pWFactory=new OLEDBWorkspaceFactory(); IPropertySet pPropertySet=new PropertySe ...
- spring-webmvc 4.3.4 与 freemarker、easyui 整合
一.所需lib包 二.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xm ...
- oracle 导入导出数据
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用 ...
- 【转】Android自定义View的实现方法,带你一步步深入了解View(四)
原文网址: 转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到 ...