摘要: 【算法】splay 【题解】 splay维护序列,用权值(离散化)作为编号。每次找第i小的话直接找对应编号splay即可。 但是这样splay没有下传翻转标记?直接暴力找到路径然后从根到改结点pushdown。暴力出奇迹! 如果没有find就直接splay,一定记得更新设置splay为传值调用并且在 阅读全文
posted @ 2017-05-28 22:01 ONION_CYC 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 【算法】splay 【题解】对于每个结点维护其子树串的hash值,前面为高位,后面为低位。 sum[x]=sum[L]*base[s[R]+1]+A[x]*base[s[R]]+sum[R],其中sum为哈希,base为乘权,A为数值(即字符)。 #include<cstdio> #include< 阅读全文
posted @ 2017-05-28 21:54 ONION_CYC 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 【算法】splay 【题解】数据结构 感谢Occult的模板>_<:HYSBZ 1500 维修数列 #include<cstdio> #include<cctype> #include<cstring> #include<queue> #include<algorithm> using namesp 阅读全文
posted @ 2017-05-28 19:58 ONION_CYC 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 【算法】快速幂运算 【题解】快速幂的原理是把幂用二进制表示,从最低位a,次低位a2,次次低位(a2)2。 #include<cstdio> long long quick_pow(long long a,long long b,long long c) { long long ans=1; whil 阅读全文
posted @ 2017-05-28 18:37 ONION_CYC 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 【算法】离散化+树状数组(求逆序对) 【题解】经典,原理是统计在i之前插入的且值≤i的个数,然后答案就是i-getsum(i) #include<cstdio> #include<algorithm> #include<cstring> #define lowbit(x) x&(-x) using 阅读全文
posted @ 2017-05-28 18:28 ONION_CYC 阅读(316) 评论(0) 推荐(0) 编辑