随笔分类 - 基础—hash
摘要:君不见 吕子明 踏轻舟 白衣渡川
也不见 陆伯言 烧连营 火光上冲天
阅读全文
摘要:あなたと迎えたい明日のために
涙を隠しては
阅读全文
摘要:那牡丹虽好,他春归怎占的先?
阅读全文
摘要:誰も教えてくれないで
世界は逆さに回り出す
阅读全文
摘要:首先注意 先hash一下,双hash,然后枚举删去位置,把hash值排个序,把些相等的加起来统计一下对数即可 cpp include include include using namespace std; const int N=30005; int ans,n,m,k; long long h1
阅读全文
摘要:容斥是ans= 至少k位置相等对数 C(k,k) 至少k+1位置相等对数 C(k+1,k)+至少k+2位置相等对数 C(k+2,k) …… 然后对数的话2^6枚举状态然后用hash表统计即可 至于为什么要乘上一个组合数,详见 https://www.cnblogs.com/candy99/p/661
阅读全文
摘要:二维哈希+二分 说是二维,其实就是先把列hash了,然后再用列的hash值hash行,这样可以O(n)的计算一个正方形的hash值,然后二分边长,枚举左上角点的坐标然后hash判断即可 只要base选的妙(闭眼随便敲一个数),单模数unsigned long long自然溢出也能过
阅读全文
摘要:我%&&……&()&%????? 双模hashWA,unsigned long longAC,而且必须判断hash出来的数不能为0???? 我可能学了假的hash 这个题求个前缀和,然后目标是找到距离当前位置最远,且能使这两个数组差分后2—k位相同 hash把差分后数组的2到k位压起来即可,用map
阅读全文
摘要:bzoj题面什么鬼啊…… 题目大意:有一个初始值均为0的数列,n次操作,每次将数列(ai,bi 1)这个区间中的数与ci取max,问n次后元素和 离散化,然后建立线段树,每次修改在区间上打max标记即可 cpp include include include include using namesp
阅读全文
摘要:最长上升子序列。虽然数据可以直接n方但是另写了个nlogn的 转移:f[i]=max(f[j]+1)(a[j] include using namespace std; const int N=5005; int n,a[N],f[N],ans; int read() { int r=0,f=1;
阅读全文
摘要:这个代码已经不是写丑那么简单了……脑子浆糊感觉np++分分钟想暴起打死我……就这还一遍A过了…… 先都读进来hash一下,因为是平衡树所以dfs序直接按照点值来就好 对于每个操作: 1:set维护已插入的值,对新加入的x找到它的前驱后继,选深度大的挂上去(画图找规律,我也不知道为什么深度较浅的一定挂
阅读全文
摘要:扩展BSGS的板子 对于gcd(a,p) 1的情况 即扩展BSGS 把式子变成等式的形式: \\( a^x+yp=b \\) 设 \\( g=gcd(a,p) \\) 那么两边同时除以g就会变成: \\( \frac{a}{g} a^{x 1}+y\frac{p}{g}=\frac{b}{g} \\
阅读全文

浙公网安备 33010602011771号