luogu1494 [国家集训队]小Z的袜子
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int n, m, a[50005], blc, bel[50005], cnt[50005];
long long ansfz[50005], ansfm[50005], ans;
struct Node{
int l, r, id;
}nd[50005];
bool cmp(Node x, Node y){
if(bel[x.l]!=bel[y.l]) return bel[x.l]<bel[y.l];
if(bel[x.l]&1) return x.r<y.r;
else return x.r>y.r;
}
void add(int x){
cnt[a[x]]++;
if(cnt[a[x]]>1) ans += cnt[a[x]]*(cnt[a[x]]-1) - (cnt[a[x]]-2)*(cnt[a[x]]-1);
}
void del(int x){
cnt[a[x]]--;
if(cnt[a[x]]>0) ans += cnt[a[x]]*(cnt[a[x]]-1) - (cnt[a[x]]+1)*cnt[a[x]];
}
//注意:以上add和del中的限制条件要么同时加要么同时不加。
//因为cnt可能是负值。比如说在[4,4]到[7,7]的过程中
long long gcd(long long a, long long b){
return b==0?a:gcd(b,a%b);
}
int main(){
cin>>n>>m;
blc = sqrt(n);
for(int i=1; i<=n; i++){
scanf("%d", &a[i]);
bel[i] = (i - 1) / blc + 1;
}
for(int i=1; i<=m; i++){
scanf("%d %d", &nd[i].l, &nd[i].r);
nd[i].id = i;
}
sort(nd+1, nd+1+m, cmp);
int ll=nd[1].l, rr=nd[1].r;
for(int i=ll; i<=rr; i++) add(i);
if(!ans) ansfz[nd[1].id] = 0, ansfm[nd[1].id] = 1;
else{
long long qwq=gcd(ans, (long long)(rr-ll+1)*(rr-ll));
ansfz[nd[1].id] = ans / qwq;
ansfm[nd[1].id] = (long long)(rr - ll + 1) * (rr - ll) / qwq;
}
for(int i=2; i<=m; i++){
while(ll<nd[i].l) del(ll++);
while(ll>nd[i].l) add(--ll);
while(rr<nd[i].r) add(++rr);
while(rr>nd[i].r) del(rr--);
if(!ans) ansfz[nd[i].id] = 0, ansfm[nd[i].id] = 1;
else{
long long qwq=gcd(ans, (long long)(rr-ll+1)*(rr-ll));
ansfz[nd[i].id] = ans / qwq;
ansfm[nd[i].id] = (long long)(rr - ll + 1) * (rr - ll) / qwq;
}
}
for(int i=1; i<=m; i++)
printf("%lld/%lld\n", ansfz[i], ansfm[i]);
return 0;
}
luogu1494 [国家集训队]小Z的袜子的更多相关文章
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) [莫队算法]【学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7687 Solved: 3516[Subm ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7676 Solved: 3509[Subm ...
- 莫队算法 2038: [2009国家集训队]小Z的袜子(hose)
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 ...
- BZOJ 2038 [2009国家集训队]小Z的袜子 莫队
2038: [2009国家集训队]小Z的袜子(hose) 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Descriptionw ...
- Bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队,分块,暴力
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 5763 Solved: 2660[Subm ...
- BZOJ2038: [2009国家集训队]小Z的袜子(hose) -- 莫队算法 ,,分块
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 3577 Solved: 1652[Subm ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) ( 莫队 )
莫队..先按sqrt(n)分块, 然后按块的顺序对询问排序, 同块就按右端点排序. 然后就按排序后的顺序暴力求解即可. 时间复杂度O(n1.5) --------------------------- ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 分块
分块大法好 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 2938 Solved: 13 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)【莫队算法裸题&&学习笔记】
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 9894 Solved: 4561[Subm ...
随机推荐
- 洛谷 P2398 GCD SUM || uva11417,uva11426,uva11424,洛谷P1390,洛谷P2257,洛谷P2568
https://www.luogu.org/problemnew/show/P2398 $原式=\sum_{k=1}^n(k\sum_{i=1}^n\sum_{j=1}^n[(i,j)=k])$ 方法 ...
- 牛客国庆集训派对Day_1~3
Day_1 A.Tobaku Mokushiroku Kaiji 题目描述 Kaiji正在与另外一人玩石头剪刀布.双方各有一些代表石头.剪刀.布的卡牌,每局两人各出一张卡牌,根据卡牌的内容决定这一局的 ...
- 1-1-Java的特点
Java语言平台 JavaSE(Java Platform Standard Edition)标准版 以前叫做J2SE,5.0版本后改名叫做JAVASE,主要用于桌面应用程序的开发,该技术体系是后两者 ...
- 16G 手机清理
1.16G 手机清理 清理top 5 的应用的缓存即可 2,hw wife 连接模块 低于 app wifi 的连接模块. 在同样的电脑热点面前,hw 连补上电脑热点,apple 可以连上电脑热点. ...
- 宏 函数 内联函数inline
带参宏有时候可以代替函数作用:优点直接替代,省去函数调用过程的开销:但缺点也是很明显:容易出错,系统不做检查非常容易出错. 改进方案:内联函数:既有带参宏的直接替代(拷贝)的优点,又有系统检查的优点. ...
- Jquery 操作HTML5自定义属性data-*
HTML5自定义属性规范的写法<a data-roleid="12"></a>,也可以直接写<a roleid="12">& ...
- P2955 [USACO09OCT]奇数偶数Even? Odd?
题目描述 Bessie's cruel second grade teacher has assigned a list of N (1 <= N <= 100) positive int ...
- spring-bean(三)
配置方式:通过工厂方法配置bean,通过FactoryBean配置bean 配置形式:基于注解的方式 组件扫描 泛型依赖注入 静态工厂方法 /** * 静态工厂方法:直接调用某一个类的静态方法就可以返 ...
- sql server 2000备份还原数据库
转载请注明出处:http://blog.csdn.net/neochan1108/article/details/79248017 备份: -- Create the backup device fo ...
- Traceroute侦测主机到目的主机之间所经路由情况的重要工具
ICMP的应用--Traceroute Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具.前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,pi ...