$SDOI2016Day-1$临时抱佛脚学习一下莫队算法$233$

我预感到自己省选要爆0hhh

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 50003
#define read(x) x=getint()
#define sqr(x) (x)*(x)
using namespace std;
typedef long long LL;
inline int getint() {
int k = 0, fh = 1; char c = getchar();
for(; c < '0' || c > '9'; c = getchar())
if (c == '-') fh = - 1;
for(; c >= '0' && c <= '9'; c = getchar())
k = k * 10 + c - '0';
return k * fh;
}
struct node {
int id, l, r;
} q[N];
LL sum, fz[N], fm[N], s[N];
int n, a[N], block[N], bel[N], m;
inline bool cmp(node A, node B) {return bel[A.l] == bel[B.l] ? A.r < B.r : A.l < B.l;}
inline void change(int x, int del) {
sum -= sqr(s[x]);
s[x] += del;
sum += sqr(s[x]);
}
inline LL gcd(LL a, LL b) {
return b ? gcd(b, a % b) : a;
}
int main() {
read(n); read(m);
for(int i = 1; i <= n; ++i)
read(a[i]);
for(int i = 1; i <= m; ++i)
read(q[i].l), read(q[i].r), q[i].id = i; int t = ceil(sqrt(n)), tmp = 0, cnt = 0;
for(int i = 1; i <= n; ++i) {
bel[i] = cnt;
++tmp;
if (tmp == t)
tmp = 0, ++cnt;
} sort(q + 1, q + m + 1, cmp); int l = q[1].l, r = q[1].r;
for(int i = l; i <= r; ++i) {
sum -= sqr(s[a[i]]);
++s[a[i]];
sum += sqr(s[a[i]]);
}
fz[q[1].id] = sum - (r - l + 1);
fm[q[1].id] = (r - l) * (r - l + 1);
for(int i = 2; i <= m; ++i) {
int tl = q[i].l, tr = q[i].r, tid = q[i].id;
LL tlen = tr - tl + 1;
while (l < tl) change(a[l++], -1);
while (l > tl) change(a[--l], 1);
while (r < tr) change(a[++r], 1);
while (r > tr) change(a[r--], -1);
fz[tid] = sum - tlen;
fm[tid] = tlen * (tlen - 1);
}
for(int i = 1; i <= m; ++i) {
if (fz[i] <= 0 || fm[i] <= 0)
puts("0/1");
else {
LL tong = gcd(fz[i], fm[i]);
printf("%lld/%lld\n", fz[i] / tong, fm[i] / tong);
}
}
return 0;
}

$so$ $sad$

【BZOJ 2038】【2009 国家集训队】小Z的袜子(hose) 分块+莫队的更多相关文章

  1. BZOJ 2038: [2009国家集训队]小Z的袜子(hose)【莫队算法裸题&&学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 9894  Solved: 4561[Subm ...

  2. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 【莫队算法】

    Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...

  3. bzoj 2038 [2009国家集训队]小Z的袜子(hose)(莫队算法)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2038 [题意] 给定一个有颜色的序列,回答若干个询问:区间内任选两个颜色相同的概率. ...

  4. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 【莫队算法模版】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 题意概括: 有 N 只袜子(分别编号为1~N),有 M 次查询 (L, R)里面随机 ...

  5. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 分块

    分块大法好 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MB Submit: 2938  Solved: 13 ...

  6. 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...

  7. BZOJ:2038: [2009国家集训队]小Z的袜子(hose)(莫队算法模板)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 解题心得: 第一次接触莫队算法,很神奇,很巧妙.莫队算法主要就是用来解决多次询问时 ...

  8. BZOJ 2038 2009国家集训队 小Z的袜子【模板·莫队】

    [题解] 1,先说说莫队算法. 莫队算法是用来离线处理区间问题的算法.非常易于理解和使用,且运用十分广泛. 假设我们现在已知区间[L,R]的答案,如果我们能以较低的时间复杂度扩展得到区间$[L-1,R ...

  9. BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队

    BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无 ...

  10. BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 7687  Solved: 3516[Subm ...

随机推荐

  1. AC日记——大整数加法 openjudge 1.6 10

    10:大整数加法 总时间限制:  1000ms 内存限制:  65536kB 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 ...

  2. 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...

  3. webform:分页组合查询

    一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql"& ...

  4. SQL存储过程、视图

    存储过程: 存储过程(stored procedure)有时也称为sproc.存储过程存储于数据库中而不是在单独的文件中,有输入参数.输出参数以及返回值等. 在数据库中,创建存储过程和创建其他对象的过 ...

  5. C与CPP 在线手册查找

    1. MSDN 的标准与使用 https://msdn.microsoft.com/zh-cn/library/3bstk3k5.aspx 2. Cpp在线查看. http://www.cpluspl ...

  6. Linux强化论:15步打造一个安全的Linux服务器

    Linux强化论:15步打造一个安全的Linux服务器 Alpha_h4ck2016-11-30共28761人围观 ,发现 8 个不明物体专题系统安全 可能大多数人都觉得Linux是安全的吧?但我要告 ...

  7. MysqlHelper 需要重写

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;u ...

  8. oracle数据库误操作把表删除了,怎样恢复

    一:表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有:1.从flash back里查询被删除的表 select * from re ...

  9. Linux的chattr与lsattr命令

    有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux ...

  10. 嵌入支付宝SDK,出现“LaunchServices: ERROR: There is no registered handler for URL scheme alipay”错误

    应用项目中嵌入支付宝SDK,在模拟器运行app后,会出现“LaunchServices: ERROR: There is no registered handler for URL scheme al ...