博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HYSBZ 2038 小Z的袜子(hose) (莫队算法入门)
阅读量:6078 次
发布时间:2019-06-20

本文共 932 字,大约阅读时间需要 3 分钟。

题意:取一段区间,求区间中任取两个数相同的概率;

思路:所求概率P=(A*(A-1)/2+B*(B-1)/2+......)/(R-L+1)*(R-L)/2化简得P=(A*A+B*B+......+Z*Z-(R-L+1))/(R-L+1)*(R-L);

        将询问区间左端点放在同一分块中处理,每次处理一个块中的所有询问,对于同一块,询问右端点按严格递增处理,左端点不断移动;

#include
#include
#include
#include
using namespace std;int t,n,m,unit;int a[500010],num[500010];struct node{ int id,L,R;}M[500010];int cmp(node a,node b){ if(a.L/unit!=b.L/unit) return a.L/unit
M[i].L) { L--; temp-=(long long)num[a[L]]*num[a[L]]; num[a[L]]++;//a[L]的个数加1 temp+=(long long)num[a[L]]*num[a[L]]; } while(R>M[i].R) { temp-=(long long)num[a[R]]*num[a[R]]; num[a[R]]--;//a[L]的个数减1 temp+=(long long)num[a[R]]*num[a[R]]; R--; } while(L

 

转载于:https://www.cnblogs.com/dashuzhilin/p/4651301.html

你可能感兴趣的文章
nodejs流之行读取器例子
查看>>
源码|HDFS之NameNode:启动过程
查看>>
[译] 什么是Javascript中的提升
查看>>
阿里巴巴、百度、腾讯都在用的Java架构师知识体系
查看>>
Python 异步网络爬虫 I
查看>>
像 QQ 一样处理滑动冲突
查看>>
01、Handler的那些事
查看>>
Mac OS X x64 环境下覆盖objective-c类结构并通过objc_msgSend获得RIP执行shellcode
查看>>
[译] 如何写出更好的 React 代码?
查看>>
Android动画:这里有一份很详细的 属性动画 使用攻略
查看>>
RxJava2 实战知识梳理(5) 简单及进阶的轮询操作
查看>>
js call,apply,bind总结
查看>>
Spring Boot 中使用 Java API 调用 lucene
查看>>
从 Java 层看 React-Native 通信机制
查看>>
来来来!关于iOS基础总结咱俩好好唠唠
查看>>
兑吧:从自建HBase迁移到阿里云HBase实战经验
查看>>
ECS 控制台诊断系统
查看>>
聊聊servicecomb-saga的alpha-server
查看>>
iOS多线程调研
查看>>
iOS多线程Pthreads篇
查看>>