bzoj2038
网上大片的莫队算法题解,先orz一下莫队
什么不会莫队?没事我来篇低端的
分块大法好啊,我们知道对于区间[l,r]答案是S/P P是一下子可以算出来的,S=∑(pj-1)*pj/2 pj表示区间内颜色为j的数目
先记录ans[i,j]表示第i块到第j块之间的S
然后再记录颜色g[i,j]表示到第i块颜色为j的数目
然后暴力统计不在整块内颜色对答案的贡献即可
20分钟就1A了,非常好写
虽然理论复杂度和莫队差不多O(nsqrt(n))
但是实际上似乎被莫队完败了,但是没关系,毕竟我们这是在线算法啊
var f:array[..,..] of longint;
g:array[..,..] of longint;
be,c,s:array[..] of longint;
size,p,t,i,n,m,x,y:longint; function gcd(a,b:longint):longint;
begin
if b= then exit(a)
else exit(gcd(b,a mod b));
end; procedure prework;
var i,j:longint;
begin
for i:= to n do
inc(g[c[i],be[i]]);
for i:= to p do
for j:= to t do
inc(g[i,j],g[i,j-]);
for i:= to t do
begin
for j:=(i-)*size+ to n do
begin
if j mod size= then f[i,be[j]]:=f[i,be[j]-];
inc(f[i,be[j]],s[c[j]]);
inc(s[c[j]]);
end;
fillchar(s,sizeof(s),);
end;
end; procedure clear(l,r:longint);
var i:longint;
begin
for i:=l to r do
s[c[i]]:=;
end; procedure ask(x,y:longint);
var i,a,b,d:longint;
begin
b:=int64(y-x+)*int64(y-x) div ;
a:=;
if be[x]=be[y] then
begin
for i:=x to y do
begin
a:=a+s[c[i]];
inc(s[c[i]]);
end;
clear(x,y);
end
else begin
a:=f[be[x]+,be[y]-];
for i:=x to be[x]*size do
begin
if s[c[i]]= then s[c[i]]:=g[c[i],be[y]-]-g[c[i],be[x]];
a:=a+s[c[i]];
inc(s[c[i]]);
end;
for i:=(be[y]-)*size+ to y do
begin
if s[c[i]]= then s[c[i]]:=g[c[i],be[y]-]-g[c[i],be[x]];
a:=a+s[c[i]];
inc(s[c[i]]);
end;
clear(x,be[x]*size);
clear((be[y]-)*size+,y);
end;
d:=gcd(a,b);
writeln(a div d,'/',b div d);
end; begin
readln(n,m);
size:=trunc(sqrt(n));
for i:= to n do
begin
read(c[i]);
if c[i]>p then p:=c[i];
be[i]:=(i-) div size+;
end;
t:=i div size;
if i mod size<> then inc(t);
prework;
for i:= to m do
begin
readln(x,y);
ask(x,y);
end;
end.
bzoj2038的更多相关文章
- 【bzoj2038】 小Z的袜子(hose)
http://www.lydsy.com/JudgeOnline/problem.php?id=2038 (题目链接) 转自:http://blog.csdn.net/bossup/article/d ...
- BZOJ2038 2009国家集训队 小Z的袜子(hose) 【莫队】
BZOJ2038 2009国家集训队 小Z的袜子(hose) Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼 ...
- 【BZOJ2038】小Z的袜子(莫队)
题意: 给定n个数a1, a2…… an与m个询问(L,R).对于每个询问,从aL, aL+1…… aR这R-L+1个数中随机取出两个数,求这两个数相同的概率. 数据范围:1<=n,m,ai&l ...
- BZOJ2038 (莫队)
BZOJ2038: 小Z的袜子 Problem : N只袜子排成一排,每次询问一个区间内的袜子种随机拿两只袜子颜色相同的概率. Solution : 莫队算法真的是简单易懂又暴力. 莫队算法用来离线处 ...
- BZOJ2038 小Z的袜子 (莫队算法)
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038 专题练习: http://acm.hust.edu.cn/vjudge/conte ...
- [bzoj2038][2009国家集训队]小Z的袜子(hose)_莫队
小Z的袜子 hose 2009-国家集训队 bzoj-2038 题目大意:给定一个n个袜子的序列,每个袜子有一个颜色.m次询问:每次询问一段区间中每种颜色袜子个数的平方和. 注释:$1\le n,m\ ...
- 【bzoj2038】[2009国家集训队]小Z的袜子(hose)(细致总结)
[bzoj2038][2009国家集训队]小Z的袜子(hose)(细致总结) Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z ...
- BZOJ2038 小Z的袜子 莫队
BZOJ2038 题意:q(5000)次询问,问在区间中随意取两个值,这两个值恰好相同的概率是多少?分数表示: 感觉自己复述的题意极度抽象,还是原题意有趣(逃: 思路:设在L到R这个区间中,x这个值得 ...
- 【填坑向】bzoj2038小Z的袜子 莫队
学莫队必做题,,,但是懒得写.今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天 ...
- bzoj2038小z的袜子
用平面曼哈顿距离最小生成树或者莫队算法都可以吖QwQ~ 然而显然后者更好写(逃~) 莫队怎么写就看图吧QwQ~ 话说我一开始没开long long然后拍了3000组没拍出错交上去Wa了QAQ #inc ...
随机推荐
- Java输出日历
源码链接:http://pan.baidu.com/s/1o6xeybK
- JavaSE生成随机数
今天呢,老师讲了一下怎么用jvm实现随机数(本人对此很感兴趣),一个简单的随机100以内整数的代码如下: /** 生成随机数 */ import java.util.Random; public cl ...
- iOS 9 Spotlight搜索 OC版
介绍: 在WWDC 2015会议上,苹果官方公布了iOS9.除开许多新的特性和增强功能,这次升级也给了开发者们一个机会让他们的app里的内容能通过Spotlight 搜索功能被发现和使用.在iO ...
- iOS 多张图片保存到相册问题(add multiple images to photo album)
不知道朋友们有木有做过多图保存到系统的相册这个需求,我在用`UIImageWriteToSavedPhotosAlbum`保存图片时候,在代理回调方`didFinishSavingWithError` ...
- Codevs 3233 古道
3233 古道 时间限制: 1 s 空间限制: 8000 KB 题目等级:**白银 Silver** [传送门](http://codevs.cn/problem/3233/) 题目描述 Descri ...
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理
思路:状压dp,枚举疾病的集合,然后判断一下可行性即可. #include<bits/stdc++.h> using namespace std; #define maxs 400000 ...
- ios 64位下编译webrtc的libvpx库出现错误Bad cputype for object file.Currently only tested for CPU_TYPE_x86_64
diff --git a/libvpx.gyp b/libvpx.gypindex 4f8cb2b..4eb6866 100644--- a/libvpx.gyp+++ b/libvpx.gyp@@ ...
- 利用Xlinix SDK 建立Linux程序以及对该程序进行调试
一.创建Linux程序 1. 点击File > New > Application Project .并参照下图设置. 2. 输入工程名,并选择存储路径. 3. 选择所需的操作系统平台(O ...
- 基于NodeJs的网页爬虫的构建(二)
好久没写博客了,这段时间已经忙成狗,半年时间就这么没了,必须得做一下总结否则白忙.接下去可能会有一系列的总结,都是关于定向爬虫(干了好几个月后才知道这个名词)的构建方法,实现平台是Node.JS. 背 ...
- MyEclipse 搭建webservice (axis1.4)
0 引言 以前都是做javaweb的 最近因工作需要 接触了webservice 关于什么事webservice,与web的区别,soap,跟http的区别,asix1和asix2的区别,为什么不用 ...