Description

HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此, 他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同 的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解 决这个问题。

Input

第一行:一个整数N,表示项链的长度。 第二行:N个整数,表示依次表示项链中贝壳的编号(编号为0到1000000之间的整数)。 第三行:一个整数M,表示HH询问的个数。 接下来M行:每行两个整数,L和R(1 ≤ L ≤ R ≤ N),表示询问的区间。

Output

M行,每行一个整数,依次表示询问对应的答案。

Sample Input

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

Sample Output

2
2
4

HINT

对于20%的数据,N ≤ 100,M ≤ 1000;
对于40%的数据,N ≤ 3000,M ≤ 200000;
对于100%的数据,N ≤ 50000,M ≤ 200000。

 
莫队算法。。。感觉是一种有规律的暴力
他们写的比我好,不想多说什么了
 #include<cstdio>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
const int N=;
struct node{int l,r,id;
ll a,b;}a[N];
int n,m;
ll ans,sum[N];
int c[N],bel[N];
bool cmp(node a,node b){
if (bel[a.l]==bel[b.l]) return (a.r<b.r);
return a.l<b.l;
} bool cmp1(node a,node b){return a.id<b.id;}
ll sqr(ll x){return x*x;}
void init(){
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++) scanf("%d",&c[i]);
int block=int(sqrt(n));
for (int i=;i<=n;i++) bel[i]=(i/block)+;
for (int i=;i<=m;i++){
scanf("%d%d",&a[i].l,&a[i].r);
a[i].id=i;
}
} void updata(int wz,int ch){
ans-=sqr(sum[c[wz]]);
sum[c[wz]]+=ch;
ans+=sqr(sum[c[wz]]);
} ll gcd(ll a,ll b){
if (a%b==) return b;
return gcd(b,a%b);
} int main(){
init();
sort(a+,a+m+,cmp);
int l=,r=;
for (int i=;i<=m;i++){
for (;r<a[i].r;r++) updata(r+,);
for (;r>a[i].r;r--) updata(r,-);
for (;l<a[i].l;l++) updata(l,-);
for (;l>a[i].l;l--) updata(l-,);
if (a[i].l==a[i].r) {a[i].a=,a[i].b=;continue;}
a[i].a=ans-(a[i].r-a[i].l+);
a[i].b=(ll)(a[i].r-a[i].l+)*(a[i].r-a[i].l);
ll tmp=gcd(a[i].a,a[i].b);
a[i].a/=tmp;a[i].b/=tmp;
}
sort(a+,a+m+,cmp1);
for (int i=;i<=m;i++) printf("%lld/%lld\n",a[i].a,a[i].b);
}

【BZOJ 2038】[2009国家集训队]小Z的袜子(hose)的更多相关文章

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

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

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

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

  3. Bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队,分块,暴力

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

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

    莫队..先按sqrt(n)分块, 然后按块的顺序对询问排序, 同块就按右端点排序. 然后就按排序后的顺序暴力求解即可. 时间复杂度O(n1.5) --------------------------- ...

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

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

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

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

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

    这里跟曼哈顿最小生成树没有太大的关系. 时间复杂度证明: [BZOJ2038 小Z的袜子 AC代码] 排序方式: 第一关键字:l所在的块: 第二关键字:r从小到大. #include<cstdi ...

  8. 洛谷 P1494 BZOJ 2038 [2009国家集训队]小Z的袜子(hose)

    //洛谷题面字体.排版我向来喜欢,却还没收录这道如此有名的题,BZOJ的题面字体太那啥啦,清橙的题面有了缩进,小标题却和正文字体一致,找个好看的题面咋这么难呐………… //2019年3月23日23:0 ...

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

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

  10. 【刷题】BZOJ 2038 [2009国家集训队]小Z的袜子(hose)

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

随机推荐

  1. [改善Java代码]推荐使用String直接量赋值

    建议52:推荐使用String直接量赋值 一.建议 String对象的生成方式有两种: 1.通过new关键字生成,String str3 = new String(“中国”); 2.直接声明,如:St ...

  2. MultiMap、BidiMap及LazyMap的使用

    一.MultiMap 在日常的开发工作中,我们有的时候需要构造像Map<K, List<V>>或者Map<K, Set<V>>这样比较复杂的集合类型的数 ...

  3. 练习题之Wait/Notify

    方案一: public class PrintABC { public static void main(String[] args) { AtomicInteger synObj = ); Runn ...

  4. 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10(转)

     在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 <!Doctype html&g ...

  5. Angular 2 从0到1 (三)

    作者:王芃 wpcfan@gmail.com 第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:A ...

  6. HttpClient(4.3.5) - Redirect Handling

    HttpClient handles all types of redirects automatically, except those explicitly prohibited by the H ...

  7. Quartz Scheduler(2.2.1) - Working with TriggerListeners and JobListeners

    TriggerListeners and JobListeners Listeners are objects that you create to perform actions based on ...

  8. 在VS2010中使用附加进程的方式调试IIS中的页面

    h3{background:#333333; } 准备篇-配置IIS环境 在发布网站之前,需要安装iis环境! 之后点击确定即可! 发布网站至IIS-附加到进程调试 1.       用VS2010将 ...

  9. 第五十三篇、OC利用AFN上传视频到服务器

    整体思路已经清楚,拿到视频资源,先转为mp4,写进沙盒,然后上传,上传成功后删除沙盒中的文件. 本地拍摄的视频,上传到服务器: //视频转换为MP4 //转码操作... _hud.mode = MBP ...

  10. 第七篇、使用UIView的animateWithDuration方法制作简易动画

    import UIKit class LolitaCircleButton: UIButton { private var color: UIColor private var imageURL: S ...