数据结构
m0_46135444
这个作者很懒,什么都没留下…
展开
-
分块算法模板
1、分块算法初始化: void build(ll n) { ll block=sqrt(n);//每块个数 ll num=n/block;//总共有几块 if(n%block) num++;//不能整除加1 for(ll i=1;i<=num;i++) { l[i]=(i-1)*block+1;//确定每块的左右点 r[i]=i*block; } r[num]=n;//最后一个块的右端点一定是n for(l原创 2021-09-23 22:50:21 · 149 阅读 · 0 评论 -
字符串哈希
字符串哈希模板: ull p[300000],h[300000]; char s[300000];//字符串从1开始存储 ll n,m; void Hash() { ll seed=131; p[0]=1; for(ll i=1;i<=n;i++) { p[i]=p[i-1]*seed; h[i]=h[i-1]*seed+s[i]; } } ll get(ll l1,ll r1,ll l2,ll r2) { ll p1=h原创 2021-09-22 17:09:44 · 108 阅读 · 0 评论