Sona && Little Elephant and Array && Little Elephant and Array && D-query && Powerful array && Fast Queries (莫队)
vjudge上莫队专题
真的是要吐槽自己(自己的莫队手残写了2个bug)
- s=sqrt(n) 是元素的个数而不是询问的个数(之所以是sqrt(n)使得左端点每个块左端点的范围嘴都是sqrt(n))
- 在重载<是将q[i].l/s<q2[i].l/s 写成q1[i].l<s<q2[i].l<s 导致一下午都在调bug疯了
Sona
- 比小Z的袜子简单,直接维护区间频度的^3
- 需要离散化(离散化化的标号应提前准备好,如果用时在二分查找会增加复杂度)
- 还有比较坑的一点是多case,但样例只有一个case;多case一定要注意那些结构需要清空
cf:221D Little Elephant and Array
- 维护x=freq(x)的个数
Little Elephant and Array
- 维护区间相异元素的个数(通过出现次数便可很好写[L,R]->[L-1,R]...的转移)
- 转移有一种非常简单的写法:先减去关于元素q的信息,然后更新(可能删除或加上q),然后重新加上元素q相关信息
D-query
- 维护区间\(s*freq(s)^2\),freq(s)是s出现的次数
- 这里有个int溢出的坑(如注释所示)
inline void move(ll& now,int p,int v){
now-=(ll)num[c[p]]*num[c[p]]*tmp[p];//不强制转换为ll会WA
num[c[p]]+=v;
now+=(ll)num[c[p]]*num[c[p]]*tmp[p];
//printf("db1 %lld %d %d %d %d\n",now,c[p],p,num[c[p]],v);
/*
if(v==1){
now+=(1+2*num[c[p]])*tmp[p];//这种从数学上简化一步缩小增量大小,也可以
num[c[p]]++;
}
else{
now+=(1-2*num[c[p]])*tmp[p];
num[c[p]]--;
}
*/
/*
printf("db1 %lld %d %d %d\n",now,p,num[c[p]],v);
for(int i=1;i<=n;i++){
printf("%d\t",num[c[i]]);
}
printf("\n");
*/
}
Fast Queries
- 比较卡时间,经时间证明 ,下面写法能卡过
struct Query{
int l,r,id;
bool operator < (const Query&a) const{
if(l / s != a.l / s) return l / s < a.l / s;
return r < a.r;
}
/*
void read(int i){
scanf("%d %d",&l,&r);
id = i;
}
*/
}ques[maxm];
- 对运算符号重载的另一种写法不能卡过
struct Query{
int l,r,id;
inline friend bool operator <(const Query& q1,const Query&q2){
if(q1.l/s!=q2.l/s) return q1.l/s<q2.l/s;
return q1.r<q2.r;
}
}ques[maxn];
总结一下自己对这种裸的模板题的坑:
- n,m的含义不要混淆
- 分块s=sqrt(n)
- 注意离散化开的数组含义,一起询问的l,r是下标,需要通过数组才能得到真正信息
- 防止整形溢出
- 运算重载的写法能优化速度
加油不要手残呀
Sona && Little Elephant and Array && Little Elephant and Array && D-query && Powerful array && Fast Queries (莫队)的更多相关文章
- Little Elephant and Array CodeForces - 220B (莫队)
The Little Elephant loves playing with arrays. He has array a, consisting of npositive integers, ind ...
- codeforces 86D : Powerful array
Description An array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary su ...
- CodeForces 86D Powerful array(莫队+优化)
D. Powerful array time limit per test 5 seconds memory limit per test 256 megabytes input standard i ...
- NBUT 1457 Sona(莫队算法+离散化)
[1457] Sona 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Sona, Maven of the Strings. Of cause, she can play the ...
- D. Powerful array 莫队算法或者说块状数组 其实都是有点优化的暴力
莫队算法就是优化的暴力算法.莫队算法是要把询问先按左端点属于的块排序,再按右端点排序.只是预先知道了所有的询问.可以合理的组织计算每个询问的顺序以此来降低复杂度. D. Powerful array ...
- codefroce D. Powerful array[初识块状数组]
codefroce D. Powerful array[初识块状数组] 由于是初始所以,仅仅能先用别人的分析.囧... 题目: 给定一个数列:A1, A2,--,An,定义Ks为区间(l,r)中s出现 ...
- D. Powerful array
D. Powerful array 题意 给定一个数列:a[i] (1<= i <= n) K[j]表示 在区间 [l,r]中j出现的次数.有t个查询,每个查询l,r,对区间内所有a[i] ...
- VS2013 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array<int>::operator [](int)”只是在返回类型上不同
1,VS2013 错误 1 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array ...
- CF86D Powerful array
题意翻译 题意:给出一个n个数组成的数列a,有t次询问,每次询问为一个[l,r]的区间,求区间内每种数字出现次数的平方×数字的值 的和. 输入:第一行2个正整数n,t. 接下来一行n个正整数,表示数列 ...
随机推荐
- 洛谷P1046 陶陶摘苹果
题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 101010 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 303030 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳 ...
- Zend 官方框架增加 Swoole 协程支持 !
前言 Zend Framework 是 PHP 的官方框架,随着 Zend-Expressive-Swoole 0.2.2 的发布,率先支持了 Swoole 4 的协程功能,现在可以仅通过一个配置即可 ...
- python第一周:python初识、流程控制
编译性语言:在将源代码编译完毕生成一个可执行文件后才能运行 解释性语言:在代码的运行期间进行编译 动态类型语言:在运行期间才去做数据检查的语言,也就是说在使用动态类型语言时不用指定数据类型 静态类型语 ...
- 关于安卓sdk开发环境的的更新-Android SDK下载和更新失败
由于特别原因,我们更新安卓sdk时不会成功.解决办法: 修改C:\Windows\System32\drivers\etc\hosts文件.添加一行:74.125.237.1 dl-ssl ...
- 带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用。除非是main里的局部变量。因为main方法就是static的啊。
带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用.除非是main里的局部变量.因为main方法就是static的啊.
- getColor()方法过时的替代方法
Android SDK 升級到 23 之後,getResource.getColor(R.color.color_name) 過時 使用新加入的方法 ContextCompat.getColor(co ...
- 【iOS开发-68】APP下载案例:利用tableView自带的cell布局+缓存池cell复用时注意button状态的检查
(1)效果 (2)源码与资源下载 http://pan.baidu.com/s/1pJLo2PP (3)总结 --核心是利用UITableView里面自带的cell来制作样式同样的cell. 与之对应 ...
- Cocos2d-x3.0 RenderTexture(三)
.h #include "cocos2d.h" #include "cocos-ext.h" #include "ui/CocosGUI.h" ...
- 0x12 队列
感觉和栈那一讲一样简单啊.. poj2259 这个乱搞硬模拟吧...没更新last WA了N次...(叫你懒得写拍) #include<cstdio> #include<iostre ...
- caioj1497&&bzoj3125: CITY
震惊!bzoj居然又被苏大佬D飞了... 这题煞笔模板题好吧. 然而bzojAC caiojWA%40??? 好强啊 今天早上发现是m打成n了囧 #include<cstdio> #inc ...