05 2019 档案
摘要:有2种情况。都选tot/3的节点,那么,各节点记录子节点的为tot/3的乘一下。然后是祖先是tot/3*2的乘以子树中tot/3的数量。
阅读全文
摘要:树状数组记录各点到根的距离。边值变化时,深度大的点的bg[]树状数组中增加,fn[]+1减。树状数组中x位置变化影响的是>=x的数。这样bg[]+,fn[]+1 减,这样就能消除影响。
阅读全文
摘要:各行各列连续的o和*记为一个元素。然后记录下开始和结束位置。如果横条和竖条交点为'o'。连线。表示两边能选一边,然后最大流。
阅读全文
摘要:dp[i][j]长为i,最高位j,没有lead0的个数。然后大到小。如果dp[i][0]<n就n中减去。具体看代码。
阅读全文
摘要:先找边双连通,拿stack记录?(不确定正确性)。然后缩点后的点连成一棵树。拿vector储存边。然后由于数据弱,lca直接 就行。
阅读全文
摘要:我的解法:先将1-1e5的非完全平方放入vector。非完全平方数的质因数分解的数量互质,比如12不是完全平方,2的个数(2个),和3的个数(1个),互质。而36有,2个2,2个3,数量不互质。非完全平方数的次方没有交集。比如2^2*3^6只能是(2*3^3的平方)。这样a,b之间的平方数个数就用1
阅读全文
摘要:哈希算法。各串存入哈希值,再列举各串的断点,O(1)更新哈希值。
阅读全文
摘要:这题居然是暴力,vst数组,如果没vst,就往fail跳,全标 为vst过,然后加上mk值。
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include //#include #define mkp make_pair #define err cout::iterator IT; cons...
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include //#include #define mkp make_pair #define err cout::iterator IT; cons...
阅读全文
摘要:解法1:后缀自动机 解法1.1用串1建后缀自动机,用串2匹配。并记录能匹配的长度。匹配成功+1,否则变为maxlen[最后fail到的位置]+1。 解法1.2串一先加,然后加入'#‘。再加串2.加串2的时候,如果新得到的节点的slink在一串,则说明出现了2次。 解法1.3.建立广义后缀自动机,用数
阅读全文
摘要:这题二分加HASH 6-7秒,如果能用unordered_map,5秒。后缀自动机200-400ms。后缀数组(没写)大概2000ms。
阅读全文
摘要:这题后缀自动机好像无法解决。本来打算用endpos的节点的maxlen来找最大,结果发现重合串可能没在同一个节点。比如样例,第一个串的CD的endpos和ABCD,BCD一样,在同一节点。第二个串的BCD,CD在同一节点,maxlen长度无法解决。即使跳slink也无法。
阅读全文
浙公网安备 33010602011771号