/*
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. ubuntu14.04 安装LNMP

    新书上市<深入解析Android 5.0系统> 通常我们使用centos来组建LNMP,可是我们开发时多使用ubuntu的桌面版本号来调试,以下将具体介绍怎样在ubuntu上安装一套LNM ...

  2. 基于ZF中的.htaccess文件学习Apache的Rewrite语法

    首先我们看一下这个.htaccess文件: RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST ...

  3. luogu3911 最小公倍数之和

    题目大意 给出一些数\(A_1,A_2,\cdots A_n\),求 \[\sum_{i=1}^{n}\sum_{j=1}^{n}\mathrm{lcm}(A_i,A_j)\] \(A_i,A_n\l ...

  4. JDK8新特性:函数式接口

    一,定义 函数式接口,英文为Functional Interface.首先它是一个接口,那么它与其它接口有什么不同呢?不同点就是在这个接口中只允许有一个抽象方法. 这里的只允许一个抽象方法不包括以下几 ...

  5. jQuery不熟点总结

     jQuery 事件 1 .trigger() 方法触发被选元素的指定事件类型. 2 .delegate() 事件委派  1.不占内存2.可以给未来元素(后期动态添加的元素)添加事件. 2.  添加元 ...

  6. Pop3协议详解

      POP3全称为Post Office Protocol version3,即邮局协议第3版.它被用户代理用来邮件服务器取得邮件.POP3采用的也是C/S通信 模型 用户从邮件服务器上接收邮件的典型 ...

  7. 关于javascript中静态成员和实例成员的详细解释

    关于javascript中静态成员和实例成员的详细解释  在我们了解什么是静态成员和实例成员之前,我们首先来了解一下什么是实例? 实例就是由构造函数创建出来的对象. 例如案例中 p 就是实例: fun ...

  8. sql变量需要加小括号

    declare @num int select top (@num) * from A --注意,使用变量来查询的时候,单个变量需要使用()

  9. testdirector

    TestDirector是全球最大的软件测试工具提供商Mercury Interactive公司生产的企业级测试管理工具,也是业界第一个基于Web的测试管理系统

  10. ZBrush关于遮罩的一些操作

    本文讨论使用ZBrush®软件如何在屏幕上创建遮罩和操纵遮罩. 1. 绘制遮罩 按下Ctrl键你就能够在你的模型上绘制遮罩(笔刷的笔划的开始和结束都必须在模型上),默认情况下,遮罩区域在模型上显示为一 ...