#P1494. 小 Z 的袜子(Little Zs Socks)

0
    ID: 8461 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P1494莫队算法莫队离线查询概率计数CSP-S

小 Z 的袜子(Little Zs Socks)

小 Z 的袜子(Little Zs Socks)

题目描述

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

具体来说,小 Z 把这 NN 只袜子从 11 到 NN 编号,然后从编号 LL 到 RR 的袜子中随机选出两只来穿。尽管小 Z 并不在意两只袜子是不是完整的一双,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。

你的任务便是告诉小 Z,他有多大的概率抽到两只颜色相同的袜子。当然,小 Z 希望这个概率尽量高,所以他可能会询问多个 (L,R)(L,R) 以方便自己选择。

然而数据中有 L=RL=R 的情况,请特判这种情况,输出0/1。

输入格式

输入文件第一行包含两个正整数 NN 和 MM。NN 为袜子的数量,MM 为小 Z 所提的询问的数量。接下来一行包含 NN 个正整数 CiC_i,其中 CiC_i 表示第 ii 只袜子的颜色,相同的颜色用相同的数字表示。再接下来 MM 行,每行两个正整数 L,RL, R 表示一个询问。

输出格式

包含 MM 行,对于每个询问在一行中输出分数 A/BA/B 表示从该询问的区间 [L,R][L,R] 中随机抽出两只袜子颜色相同的概率。若该概率为 00 则输出 0/1,否则输出的 A/BA/B 必须为最简分数。(详见样例)

样例输入 #1

6 4
1 2 3 3 3 2
2 6
1 3
3 5
1 6

样例输出 #1

2/5
0/1
1/1
4/15

数据范围

30%30\% 的数据中,N,M≤5000N,M\leq 5000;

60%60\% 的数据中,N,M≤25000N,M \leq 25000;

100%100\% 的数据中,N,M≤50000N,M \leq 50000,1≤L≤R≤N1 \leq L \leq R \leq N,Ci≤NC_i \leq N。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1900。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 20 2~7 小规模 N,M≤5000 / 特判 L=R 输出 0/1 / 所有袜子颜色互不相同输出 0/1
2 15 8~11 Hack: 全相同颜色输出 1/1 且分子达 2.5×10^9 卡32位溢出 / Hack: 莫队奇偶块排序卡常数边界
3 30 12~20 满规模 N=50000, M=50000 莫队概率约分压力
4 25 21~25 随机颜色种类与区间长度回归测试

出处:原题链接