题目链接


莫队求区间[L,R]中数字相同的pair数,然后求GCD即可。

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<set>
#include<stack>
#include<vector>
#include<map>
#include<queue>
#define myself i,l,r
#define lson i<<1
#define rson i<<1|1
#define Lson i<<1,l,mid
#define Rson i<<1|1,mid+1,r
#define half (l+r)/2
#define inff 0x3f3f3f3f
#define lowbit(x) x&(-x)
#define PI 3.14159265358979323846
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define min3(x,y,z) min(min(x,y),min(y,z))
#define pii make_pair
#define pr pair<int,int>
const int dir[4][2]={0,1,0,-1,1,0,-1,0};
typedef long long ll;
const ll inFF=9223372036854775807;
typedef unsigned long long ull;
using namespace std;
const int maxn=1e5+5;
int a[maxn],cnt[maxn];
int n,m,u;
ll ans;
struct node
{int l,r,id;
}s[maxn];
struct nod
{ll x,y;
}res[maxn];
bool cmp(node x,node y){return x.l/u!=y.l/u?x.l<y.l:x.r<y.r;}
void add(int x)
{ans+=cnt[a[x]];cnt[a[x]]++;
}
void del(int x)
{cnt[a[x]]--;ans-=cnt[a[x]];
}
int main()
{int l,r;ll x,y,z;scanf("%d %d",&n,&m);u=sqrt(n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=m;i++) scanf("%d %d",&s[i].l,&s[i].r),s[i].id=i;sort(s+1,s+1+m,cmp);l=1,r=0,ans=0;for(int i=1;i<=m;i++){while(l>s[i].l) add(--l);while(l<s[i].l) del(l++);while(r<s[i].r) add(++r);while(r>s[i].r) del(r--);x=ans,y=(ll)(r-l+1)*(r-l)/2;z=__gcd(x,y);res[s[i].id].x=x/z;res[s[i].id].y=y/z;}for(int i=1;i<=m;i++)printf("%lld/%lld\n",res[i].x,res[i].y);return 0;
}

BZOJ2038 小Z的袜子(hose)相关推荐

  1. bzoj2038[2009国家集训队]小Z的袜子(hose)

    bzoj2038[2009国家集训队]小Z的袜子(hose) 题意: 把N只袜子从1到N编号,每次求从编号为L到R的袜子中抽两只,有多大的概率抽到颜色相同的袜子. 题解: 不知道要用什么数据结构,但是 ...

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

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

  3. BZOJ2038 小Z的袜子 (莫队算法)

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

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

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

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

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

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

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

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

    题目传送门 1 /* 2 莫队算法:求出[l, r]上取出两只相同袜子的个数. 3 莫队算法是离线处理一类区间不修改查询类问题的算法.如果你知道了[L,R]的答案,可以在O(1)的时间下得到 4 [L ...

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

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

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

    莫队也是暴力的一种,不过可以很有效的降低复杂度 如果我们已知[l, r]的答案,能在O(1)时间得到[l+1,r]的答案以及[l, r-1]的答案,即可使用莫队算法. 时间复杂度为O(n^1.5).如 ...

最新文章

  1. [置顶] 将项目从tomcat 迁移到JBoss
  2. 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )
  3. 汇编语言子程序的汇编及与C程序的连接
  4. 《Zabbix安装部署-1》-Centos7
  5. centos 搭建git服务器
  6. C#题目及答案(1)
  7. 屏幕元素创建的基本语法
  8. 自定义ElementUI风格树形组件,详解递归组件的使用及事件数据传递,视图更新等问题
  9. 没有一个产品,竟捞金200亿!2021年最大胆设想,已沦为圈钱工具
  10. C言语教程第四章: 数组(4)
  11. 素数(质数)与合数的研究
  12. java 发送 json数据_Java web中怎样取得Android通过post发送的json数据
  13. 首位华人女数学家获拉马努金奖!北大数院校友,陶哲轩恽之玮曾得过此奖
  14. CSDN程序员过中秋,那是一个热闹
  15. Web前端基础笔记:第十章 CSS-背景
  16. Android下的特殊文件夹
  17. Heuristic Search之Greedy Best First Search
  18. Charles使用及常用功能介绍
  19. 霖呆呆的近期面试128题汇总(含超详细答案)
  20. Java进阶之路~Set集合

热门文章

  1. python-字符串数据类型内置方法
  2. oracle字符界面安装,怎么解决oracle在linux 纯字符界面安装有关问题
  3. PyTorch 笔记(19)— Tensor 用 GPU 加速
  4. tensorflow---alexnet training (tflearn)
  5. 使用Java企业级技术开发大型系统(3)
  6. Atitit 知识图谱的数据来源
  7. Fibonacci数列的java实现
  8. Chain of Responsibility 责任链模式 MD
  9. JavaScript基本知识
  10. 东北大学计算机分数线2017,东北大学2017年本科一批录取分数线(全国)