上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 130 下一页
摘要: 看这篇题解 怎么想到的:比如\(a_{i-1}<a_i\),那么我们循环到\(a_{i-1}\)的时候,肯定是先将\(a_{i-1}\)平方一直平方到一个边界,即再平方一次就超过\(a_i\)了,然后在这个时候去考察\(b_i\)和\(b_{i-1}\)的性质就好了,猜测两者肯定不会相差太多 阅读全文
posted @ 2024-08-15 14:25 最爱丁珰 阅读(12) 评论(0) 推荐(0)
摘要: 考虑暴力怎么做。一个很自然的想法就是枚举每个模式串,并将当前枚举到的模式串作为文本串,然后内层循环再依次枚举模式串,看每个模式串在文本串中出现了多少次 发现上述过程与AC自动机的匹配很像,于是建立AC自动机,将每个串都放在AC自动机上跑query,当前跑到的u就代表这个串的一个前缀,然后让j=u一直 阅读全文
posted @ 2024-08-15 10:50 最爱丁珰 阅读(9) 评论(0) 推荐(0)
摘要: AC自动机上DP的典型题目 假设我们已经获得了最终的串,那么将这个串放在AC自动机上匹配的时候,一定是不会匹配到一个模式串的,我们考虑利用这一点来DP 设\(f[i][j]\)表示将经过修改后的文本串的前\(i\)个字符放在AC自动机上匹配中途没有匹配到模式串且当前匹配到AC自动机的\(j\)号节点 阅读全文
posted @ 2024-08-15 10:07 最爱丁珰 阅读(12) 评论(0) 推荐(0)
摘要: 结合我们对AC自动机的理解,我们发现令e[i]表示第\(i\)个节点所代表的模式串的编号,query函数中取消e[j] 1就停止循环的条件而是一直循环直到j为\(0\)即可;具体见洛谷代码 阅读全文
posted @ 2024-08-15 08:44 最爱丁珰 阅读(9) 评论(0) 推荐(0)
摘要: 具体讲解看OI-wiki就好了 构建字典图的那个位置,只用理解路径压缩就好了;在路径压缩完了之后,tr[u][i]表示的是状态\(u\)接上一个字符\(i\)所表示的字符串能够与\(Q\)所匹配的最大后缀长度。形式化地,设\(s=u+i\),令\(P\)为\(s\)的后缀集合,tr[u][i]=\( 阅读全文
posted @ 2024-08-15 08:42 最爱丁珰 阅读(16) 评论(0) 推荐(0)
摘要: 严谨证明其实真的很难 设每次操作为\((l,r,x)\),其中\(l,r\)表示操作的左右端点,\(x\)表示乘以的值 首先我们知道,最后由于严格升序,所以数列分成三段,第一段为负数,第二段为\(0\),第三段为正数;操作之间的顺序无关紧要;操作之间不会跨段:如果有跨段,那么一定是跨了三段(只跨两段 阅读全文
posted @ 2024-08-14 16:31 最爱丁珰 阅读(12) 评论(0) 推荐(0)
摘要: 看这篇题解 考场上肯定考虑到了考虑贡献的,但是没有想到容斥原理,而是一直在尝试如果去计算一定合法的数量。但是容斥原理的技巧在之前的例题也见过,所以千万别忘了这个技巧,复习一下 update 2024.9.16 重新做一遍做出来了 这道题目仍然考虑计数DP的两种做法,设置状态和容斥原理(以及设计子问题 阅读全文
posted @ 2024-08-14 15:06 最爱丁珰 阅读(26) 评论(0) 推荐(0)
摘要: 说明一下时间复杂度,设\(ans[i][j]\)表示区间\([i,j]\)的最优决策点 当\(i=j\)时,显然\(ans[i][j]=i\) 假设当\(j-i=k-1\)时,\(ans[i][j]\)随着\(i,j\)的增大单调递增,那么当\(j-i=k\)时,内层循环的次数为\(O(ans[2] 阅读全文
posted @ 2024-08-14 08:52 最爱丁珰 阅读(13) 评论(0) 推荐(0)
摘要: 注意类似题目这种建树的方式,建出来可能是树,也可能是堆,而前者不一定是连续的编号,后者一定是连续的编号,这就导致了后者左右子树中一个是完全二叉树,另一个不是完全二叉树(这里就要利用这个性质优化时间复杂度);自己做的时候就是没有抓住这个性质导致没有做出来 显然考虑贡献,设\(s_{i,j}=x\),我 阅读全文
posted @ 2024-08-13 22:21 最爱丁珰 阅读(36) 评论(0) 推荐(0)
摘要: 首先找上界是常用技巧了,然后这种循环构造的方法可以记一下 当\(n≥m\)的时候肯定转换为\(n<m\)的情况 阅读全文
posted @ 2024-08-13 17:17 最爱丁珰 阅读(12) 评论(0) 推荐(0)
上一页 1 ··· 40 41 42 43 44 45 46 47 48 ··· 130 下一页