GDOI2018前夕 错误总结
Posted dedicatus545
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDOI2018前夕 错误总结相关的知识,希望对你有一定的参考价值。
算法易错点
$FFT$
1.注意精度,以及是否取整
2.注意$complex$类不要写错,复数乘法是这样的:
complex operator *(const complex &b){return complex(x*b.x-y*b.y,x*b.y+y*b.x);}
splay
1.注意$get$写法
bool get(int pos){return ch[fa[pos]][1]==pos;}
2.注意rotate中son的写法,不要写错
void rotate(int pos){
int f=fa[pos],ff=fa[f],son=get(pos);
// cout<<"rotate "<<pos<<ends<<f<<ends<<ff<<ends<<son<<ends<<ch[pos][son^1]<<ends<<ch[pos][son]<<endl;
ch[f][son]=ch[pos][son^1];
if(ch[f][son]) fa[ch[f][son]]=f;
fa[f]=pos;ch[pos][son^1]=f;
fa[pos]=ff;
if(ff) ch[ff][ch[ff][1]==f]=pos;
// cout<<"finish rotate "<<ch[pos][son^1]<<ends<<ch[f][son]<<ends<<ch[f][son^1]<<ends<<fa[f]<<endl;
update(f);update(pos);
}
3.insert函数执行过程中siz+1
莫队
1.注意卡一卡分块,像0.5,0.6,0.666666,0.7之类的都试一试
2.树上莫队可以把add和del合并,back和update合并(其实普通莫队也可以)
3.莫队真的可以过$1e5$的数据!!!
$KMP$
1.注意$fail$的意义:从1开始,表示长度
2.$getfail$写成函数更好
3.可以想想$fail$树
$AC$自动机
1.注意$getfail$的写法!!!仔细检查
2.$dp$的时候数组别开反了
3.各种空间开够,包括$bfs$队列、$AC$自动机本题,$dp$
4.如果直接暴跳$fail$有可能被卡掉,可以加$vis$标记,然后把信息下传
以上是关于GDOI2018前夕 错误总结的主要内容,如果未能解决你的问题,请参考以下文章