摘要:
建立AC自动机,因为不存在某个串是另一个串的后缀,因此匹配到任意位置都只可能匹配一个串。 预处理出每个串出现的所有位置,总的出现次数为$O(m)$。 设$f[i][j]$表示考虑了前$i$个串,最后一个串匹配位置是$j$的方案数,DP即可。 转移则是枚举$f[i-1][k]$,$j$和$k$显然可以 阅读全文
摘要:
如果Jan先手,那么可以放入一个对Petra来说价值$inf$的物品,就变成了Petra先手。 对于Petra来说,拿物品的顺序是固定的,按这个顺序排序。 那么如果把Petra的选择看成$($,Jan的选择看成$)$,一个合法的方案对应了一个合法括号序列。 因此贪心选取$\lfloor\frac{n 阅读全文
摘要:
通过BFS可以求出到每个站点的最小花费。 每次从队首取出一个点,枚举所有它能花费1块钱就到达的线路,通过两遍递推求出最大时间。 注意到每个点和每条线路只有第一次使用时有用,所以总时间复杂度为$O(n+m)$。 阅读全文
摘要:
考虑shift-and算法,那么只需要维护10个bitset即可,$f[i][j]$表示字符串$S$的第$j$位是否是字符$i$。 对于修改操作,直接暴力修改10个bitset即可,时间复杂度$O(\frac{|S|\sum}{32})$。 对于查询$T$在$S$中所有出现的位置,有$ans=ans 阅读全文
摘要:
如果我们将两个人拥有的牛混在一起,并按照战斗力从小到大排序,同时把第一个人选的牛看成$)$,第二个人选的牛看成$($的话,那么我们会发现一个合法的方案对应了一个长度为$2k$的括号序列。 于是DP即可,$f[i][j][k]$表示考虑了前$i$头牛,目前选了$j$个左括号,括号序列的前缀和为$k$的 阅读全文
摘要:
枚举LCP,假设前$i-1$个都相同。那么后面$n-i$个数可以随意排列,第$i$个位置可以填的方案数为后面小于$a_i$的数字个数,树状数组维护。 同时为了保证本质不同,方案数需要除以每个数字的个数的阶乘。 将$m$分解质因数,然后CRT合并即可。 可以先用树状数组处理出所有贡献。 同时在分开计算 阅读全文
摘要:
因为问题的对称性,只需要考虑求出有多少点离$A$更近即可。 枚举$4$个绝对值的正负号,可以解出坐标范围。 若可以转化为二维数点,则可以统一扫描线+树状数组解决。 否则是三维数点,按一维排序,剩下两维维护KD-Tree即可。 时间复杂度$O(n\sqrt{n})$。 阅读全文
摘要:
A. Survival Route 留坑。 B. Dispersed parentheses $f[i][j][k]$表示长度为$i$,未匹配的左括号数为$j$,最多的未匹配左括号数为$k$的方案数。时间复杂度$O(n^3)$。 C. Chocolate triangles 留坑。 D. LWDB 阅读全文
摘要:
A. Colourful Graph 可以在$2n$步之内实现交换任意两个点的颜色,然后就可以构造出方案。 B. Doors 答案就是这些折线之间距离的最小值除以2。 C. Peak Tower 求出所有线段相交的时刻,在相邻时刻里三分答案即可。时间复杂度$O(n^4\log n)$。 D. Pea 阅读全文
摘要:
A. Array Factory 将下标按前缀和排序,然后双指针,维护最大的右边界即可。 B. Purchases and Bonuses $f[i][j]$表示购买了前$i$个物品,目前有$j$积分时最多省多少钱,转移就是要么直接买,要么把积分全用完。 C. Number of Solutions 阅读全文
摘要:
A. Boxes and Balls 二分找到最大的不超过$n$的$\frac{x(x+1)}{2}$形式的数即可。 B. Business Cycle 二分答案,然后暴力模拟,如果没有爆负,则说明进入了循环节,后面直接算,注意最后要预留若干轮暴力模拟。 C. Suffixes and Palind 阅读全文
摘要:
A. WSI Extreme 将人按洗澡时间从大到小排序,那么$ans=\sum_{i=1}^{n}a_i\times\lfloor\frac{i+W-1}{W}\rfloor$。 当$W$比较大时,暴力枚举每一段,然后求和即可,权值线段树维护。 当$W$比较小时,线段树上按排名模$W$的值维护$W 阅读全文
摘要:
求出重心,然后把所有点关于重心极角排序,极角相同的按到重心距离从大到小排序。 按极角序依次扫描,得到相邻两个向量的夹角以及长度之比,看成字符串。 若两个字符串循环同构,则两个点集相似,KMP判断即可。 时间复杂度$O(n\log n)$。 阅读全文
摘要:
A. Within Arm's Reach 留坑。 B. Bribing Eve 枚举经过$1$号点的所有直线,统计直线右侧的点数,旋转卡壳即可。 时间复杂度$O(n\log n)$。 C. Candle Box 模拟。 D. Dinner Bet $f[i][j][k]$表示有$i$个仅属于第一个 阅读全文
摘要:
A. Arranging Hat $f[i][j]$表示保证前$i$个数字有序,修改了$j$次时第$i$个数字的最小值。 时间复杂度$O(n^3m)$。 B. British Menu 首先求出SCC,缩点之后对于每个SCC枚举起点爆搜,当搜到其它SCC时换成DP即可。 时间复杂度$O(5!(n+m 阅读全文
摘要:
A. Fancy Antiques 爆搜+剪枝。 B. Alternative Bracket Notation 模拟。 C. Greetings! $f[i][S]$表示$i$种信封覆盖$S$集合浪费的最少面积,枚举子集转移即可。 时间复杂度$O(k3^n)$。 D. Programming Te 阅读全文
摘要:
考虑容斥,通过$Bell(p)$的时间枚举所有等价情况。 对于一种情况,强制了一个等价类里面的数都要相同,其它的可以相同也可以不同。 这方案数显然可以通过多项式乘法求得,乘上容斥系数$(-1)^{p-等价类个数}\ \ \ \ \ \ \ \times(每个等价类大小-1)!之积$。 可以先把那$p 阅读全文
摘要:
A. Stock Market 枚举哪一天买入,哪一天卖出即可。 B. Sum 经典分段计算。时间复杂度$O(\sqrt{n})$。 C. ATM withdrawal 每一位贡献独立,最高位那部分则枚举$5000$的个数,剩下部分预处理一个DP即可。 D. Treasure Box 加数循环节不超 阅读全文
摘要:
A. Associated Vertices 首先求出SCC然后缩点,第一次求出每个点能到的点集,第二次收集这些点集即可,用bitset加速,时间复杂度$O(\frac{nm}{64})$。 B. Bishops 容斥。 C. Cool Numbers 暴力枚举答案即可。 D. Diagram 判断 阅读全文
摘要:
A. (a, b)-Tower 当指数大于模数的时候用欧拉定理递归计算,否则直接暴力计算。 B. Bridges Construction 留坑。 C. Equivalence Relation 留坑。 D. Formula-1 留坑。 E. Ideal Photo 三分第一个人的位置即可。 F. 阅读全文