/*
Tsinsen A1206. 小Z的袜子
http://www.tsinsen.com/new/A1206
BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
http://www.lydsy.com/JudgeOnline/problem.php?id=2038
莫队算法
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#include <queue>
//#define test
using namespace std;
const int Nmax=;
long long times[Nmax];
long long n,m;
long long num[Nmax];
int pos[Nmax];
int l=,r=;
struct Q
{
int l,r,id; }q[Nmax];
long long Ans;
long long ans1[Nmax],ans2[Nmax];
bool cmp(Q a,Q b)
{
if(pos[a.l]==pos[b.l])
return a.r<b.r;
return pos[a.l]<pos[b.l];
}
long long gcd(long long a,long long b)
{
if(b==0LL)
return a;
return gcd(b,a%b);
}
void add(int x)
{
Ans-=times[num[x]]*times[num[x]];
times[num[x]]++;
Ans+=times[num[x]]*times[num[x]];
}
void del(int x)
{
Ans-=times[num[x]]*times[num[x]];
times[num[x]]--;
Ans+=times[num[x]]*times[num[x]];
}
int main()
{
#ifdef test
#endif
scanf("%lld%lld",&n,&m);
int sz=sqrt(n);
for(int i=;i<=n;i++)
{
scanf("%lld",&num[i]);
pos[i]=i/sz;
}
for(int i=;i<=m;i++)
{
scanf("%d%d",&q[i].l,&q[i].r);
q[i].id=i;
}
sort(q+,q++m,cmp);
for(int i=;i<=m;i++)
{
if(q[i].l==q[i].r)
{
ans1[i]=;
ans2[i]=;
continue;
}
//if(r<q[i].r)
//{
//for(int j=r+1;j<=q[i].r;j++)
//add(j);
//}
//else
//{
//for(int j=r;j>q[i].r;j--)
//del(j);
//}
//if(l<q[i].l)
//{
//for(int j=l;j<q[i].l;j++)
//del(j);
//}
//else
//{
//for(int j=l-1;j>=q[i].l;j--)
//add(j);
//}
//l=q[i].l;
//r=q[i].r;
while(l<q[i].l)
{
del(l);
l++;
}
while(l>q[i].l)
{
l--;
add(l);
}
while(r<q[i].r)
{
r++;
add(r);
}
while(r>q[i].r)
{
del(r);
r--;
}
ans1[q[i].id]=Ans-(r-l+1LL);//1必须为1LL,否则会wa
ans2[q[i].id]=(r-l+1LL)*(r-l);//同上
long long c=1LL;
if(Ans)
{
c=gcd(ans1[q[i].id],ans2[q[i].id]);
ans1[q[i].id]/=c;
ans2[q[i].id]/=c;
}
else
{
ans1[q[i].id]=0LL;
ans2[q[i].id]=1LL;
}
}
for(int i=;i<=m;i++)
printf("%lld/%lld\n",ans1[i],ans2[i]);
return ;
}

Tsinsen A1206. 小Z的袜子的更多相关文章

  1. 清橙 A1206 小Z的袜子(莫队算法)

    A1206. 小Z的袜子 时间限制:1.0s   内存限制:512.0MB   总提交次数:1357   AC次数:406   平均分:46.75   将本题分享到:        查看未格式化的试题 ...

  2. 清橙A1206.小Z的袜子 && CF 86D(莫队两题)

    清橙A1206.小Z的袜子 && CF 86D(莫队两题) 在网上看了一些别人写的关于莫队算法的介绍,我认为,莫队与其说是一种算法,不如说是一种思想,他通过先分块再排序来优化离线查询问 ...

  3. HYSBZ - 2038 小Z的袜子 (莫队算法)

    A1206. 小Z的袜子 时间限制:1.0s   内存限制:512.0MB   总提交次数:744   AC次数:210   平均分:44.44 将本题分享到:        查看未格式化的试题    ...

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

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

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

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

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

    链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 ...

  7. BZOJ-2038 小Z的袜子(hose) 莫队算法

    2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 5573 Solved: 2568 [Subm ...

  8. BZOJ 2038 [2009国家集训队]小Z的袜子 莫队

    2038: [2009国家集训队]小Z的袜子(hose) 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Descriptionw ...

  9. BZOJ2038小Z的袜子(hose)

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

随机推荐

  1. 一次SQLSERVER触发器编写感悟

    背景:BOSS须要我写一个工厂採集端到server端的数据同步触发器,数据库採用的是sqlserver2008 需求:将多台採集机的数据同步到server中,假设採集端数据库与server数据库连接失 ...

  2. 弗拉特利定律:Illumina怎样缔造基因革命

    蕾妮·瓦林特(Renee Valint)的女儿谢尔碧(Shelby)在2000年出生时.看起来虚弱无力,就如同一仅仅耷拉着的布娃娃.谢尔碧学着走路和说话,但学得很慢.错过了儿童发展的重要阶段.到4岁时 ...

  3. 【转】IOS中Json解析的四种方法

    原文网址:http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有 ...

  4. ubuntu刚安装好之后apt-get使用异常

    gaozhang 刚安装好之后,想执行apt-get update 任务,出现以下错误提示   提示说明apt正在执行,我们就野蛮的将apt进程杀.死即可,不过有点多,一个个kill   执行完之后再 ...

  5. BZOJ 2140 Tarjan

    思路: 跟POJ有一道时限挺长的题一模一样  哦 POJ 1904 题解可以看这个(捂脸) http://blog.csdn.net/qq_31785871/article/details/52963 ...

  6. linq的教程

    http://www.cnblogs.com/lifepoem/archive/2011/12/16/2288017.html

  7. 浅析CLR的异常处理模型

    文章目录: 异常概述 CLR中的异常处理机制 CLR中异常的核心类System.Exception类 异常处理的设计规范和最佳实践 异常处理的性能问题 其他拓展 1.异常概述 异常我们通常指的是行动成 ...

  8. vue2.x阅读笔记

    v-once 作用: 只赋值一次 注意: 包括子项都是只赋值一次 模板 1.v-text v-html 2.{}语法 3.如果是html的属性,则用v-bind绑定,简写: 注意: 1.可以使用jav ...

  9. JavaScript获取非行间样式

    <html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...

  10. map参数值取代

    public static String processTemplate(String tpl, Map<String, ?> params){ Iterator<String> ...