摘要:
原理 令 p [ x ] p[x] p[x]表示 x x x到 f a [ x ] fa[x] fa[x]的路径权值,有下式: s [ x ] = p [ x ] + s [ f a [ x ] ] s[x]=p[x]+s[fa[x]] s[x]=p[x]+s[fa[x]] 可以在路径压缩时完成这一 阅读全文
摘要:
这题呢,暴露出来一个问题,就是 我对暴力数据结构的掌控力还是不强 导致最后手忙脚乱还是没调出来。(当然思维上也有一些问题,有点想复杂了) 第一种做法,树状数组。 ∑ i = 1 n ∑ j = i n ∑ k = j n d i = ∑ i = 1 n d i ( n − i + 1 ) ( n − 阅读全文
摘要:
与非(nand)是非常强大的位运算,可以表示出所有其他位运算: not A = A nand A A and B = not (A nand B) A or B = (not A) nand (not B) A xor B = (A and not B) or (not A and B) 相当于我们 阅读全文
摘要:
熊神仙的做法好难想到。。。 暴力转移是这样的: d p i , x , y = ∑ d p i − 1 , x − x 0 , y − y 0 ( x 0 + y 0 ≤ a i ) dp_{i,x,y}=∑dp_{i-1,x-x_0,y-y_0}(x_0+y_0\leq a_i) dpi,x,y 阅读全文
摘要:
官方题解写得像 shit 首先看到 对称 ,不难想到二维 hash。 那么我们判断左右和上下翻转后的矩形是不是和原来的完全相同。 枚举中心位置,然后二分。 #include<bits/stdc++.h> #define ull unsigned long long using namespace s 阅读全文