摘要:
日记和编辑器 \(n\) 个操作,5类: 在某个位置后插入一个字符串。 区间删除。 区间修改为一个字符串(长度可以不等)。 查询一段区间某种字符的出现次数 查询一段区间匹配模式串 \(P\) 的次数(\(P\) 固定) \(1\le n\le 10^5,|s|\le 10^5,\sum|s|\le 阅读全文
摘要:
sakuya 我们考虑每对距离 \(d(i,j)\)(两个方向都算)在所有方案中的出现次数。 考虑捆绑法,共 \((m-1)!\),又因为 \(i,j;j,i\),所以出现次数就是 \(2(m-1)!\)。 问题就变成了求解出关键点对两两之间的距离。 我们考虑每条边的贡献,是边权乘以子树内的关键点数 阅读全文
摘要:
A 魔力屏障 我们考虑设 \(f[i][j][k]\) 表示击破区间 \([i,j]\) 后,剩余魔力 \(k\),最少需要多少能量。 初始状态:对于所有区间为 \([i,i]\),击破后剩余 \(a[i]/2\),最少需要 \(a[i]\)。(如果击破能量超过 \(a[i]/2\),可以发现不是最 阅读全文
摘要:
A 密文板 我们考虑两个栈,一个维护左括号,一个维护问号; 如果来了一个右括号,优先使用左括号,然后使用问号; 多余的问号,与左括号匹配; 最后再多余,问号自己互相匹配。 #include<iostream> #include<cstring> using namespace std; #defin 阅读全文
摘要:
A 马 状态 \(f[i][j][k]\) 表示骑 \(i\) 次大圈、\(j\) 次小圈、\(k\) 次过河至少需要的马数。 发现过河一定是最先进行的,每次考虑最后一匹马的转移,只要是对应的三元组执行完后不会累倒就行。 可行的三元组不多,而且 \(i,j,k=100,100,100\) 是最坏的情 阅读全文
摘要:
B 可爱捏 考虑完全立方数的构成一定是幂 \(\bmod 3\) 互补的两个数,如 \(2^2*3^3,2^4*3^6\),那么暴力的想法就是暴力分解,然后用 map 记录互补的数,但是这样因数分解复杂度太高了。 考虑优化,我们考虑分解出 \(\le \sqrt[3]a_i\) 的数,然后如果超过了 阅读全文
摘要:
C 诗 我们考虑哈希。 对于每个询问,来了就哈希,然后排序,这样对于之后每个同是这个长度的串,就可以直接查询。 由于不同的串长最多是 \(1+2+3+\dots\),大概是 \(\sqrt n\) 的级别,每组瓶颈都是预处理,最多预处理 \(\sqrt n\) 次,加排序,那么复杂度就是 \(O(n 阅读全文
摘要:
P9745 「KDOI-06-S」树上异或 参考:https://www.luogu.com.cn/blog/710100/p9745-kdoi-06-s-shu-shang-yi-huo-jian-yao-ti-xie 其中,转移中一部分考虑的是断边,那么两部分分离,乘法原理;如果连边,需要异或为 阅读全文
摘要:
AcWing 247. 亚特兰蒂斯 题意:给定若干个矩形(长宽均平行于坐标轴),求它们的面积并(矩形的顶点坐标可以是实数)。 本题是扫描线算法的模板题。 扫描线,顾名思义,就是按照一条线扫过去,对于本题 扫描线 - OI Wiki (oi-wiki.org) 如上图,这就是扫描线的过程。 发现按照线 阅读全文