摘要: 期望本身有个公式,但可惜这个公式用的并不多。 使用最多的是期望的线性性的公式,因为这个公式可以将我们要求的答案拆成若干份,这样我们就可以正常的计算了,只要是各部分不会互相影响的都可以考虑期望线性性。 期望可以理解为到某步预估的某值,所以不必考虑各种概率产生的多种情况分支。 期望可以往dp上考虑,常见 阅读全文
posted @ 2024-12-07 20:54 煦阳gyy 阅读(20) 评论(0) 推荐(0)
摘要: AC自动机,可以理解为Trie树上跑KMP(应用类似KMP的next数组思想),为了解决多个字符串在一个大串上匹配的问题。 首先,几条总结的性质: 一个点的fail指针指向的点到root形成的字符串一定是这个点到root形成的字符串的后缀。 可以在fail指针形成的树上进行各种我们正常在树上进行的操 阅读全文
posted @ 2024-12-06 20:07 煦阳gyy 阅读(21) 评论(0) 推荐(0)
摘要: \(T1\),注意点与边不同阶时分着开,别开小了。 \(T2\) 当dp数组由于太大开不下时,可以用记忆化搜索代替。 最长不公共子序列:首先可推出\(f[i][j]=min(f[i-1][j],f[i][j-1])(a[i]==b[j]),f[i-1][j-1]+1(a[i]!=b[j])\),由于 阅读全文
posted @ 2024-11-23 21:28 煦阳gyy 阅读(13) 评论(0) 推荐(0)
摘要: \(T2\)。 注意到,要选择所有数的gcd为1 法1:可以发现,每个数最多有十个质因子,因为最小的前十个质因子乘积为6e9多,这样我们就可以状压每个数的质因子有无,我们可以先确定一个点一定选,状压代表这个数的每个质因子有无,在dp 法2:以gcd为节点,\(c[i]\)为边权,跑dij。其实很多题 阅读全文
posted @ 2024-11-21 21:27 煦阳gyy 阅读(15) 评论(0) 推荐(0)
摘要: \(T1\),一个long long级的数开根号要用\(sqrtl\),不能用\(sqrt\)。特判时要考虑一些极端情况。如果一个\(if\)成立后不进行其他别的操作,注意\(continue\)或\(return\) 阅读全文
posted @ 2024-11-19 21:05 煦阳gyy 阅读(14) 评论(0) 推荐(0)
摘要: 状压\(dp\)的通性是\(n\)常为十几,即\(2^n\)不会炸,可以枚举状态,由一个状态转移到另一个状态。 基础状压\(dp\),很简单,经常用到状态判重等,常用技巧为判断相邻位是否相同:将其左移一位后与上自己。将某一位1减去是\(i-(1<<(j-1))\)等等。例题1,例题2 三进制状压\( 阅读全文
posted @ 2024-11-14 21:40 煦阳gyy 阅读(23) 评论(0) 推荐(0)
摘要: T1,注意只要允许#define int long long就不要分着开。 T2,当我们要再一个序列中插入两种数/段,计算可能情况,可以分开差,依次算。 阅读全文
posted @ 2024-11-14 21:30 煦阳gyy 阅读(9) 评论(0) 推荐(0)
摘要: 区间\(dp\)特点,可由小区间加上一堆运算推到大区间(板子) 或者一个序列,从中间扣掉一个/一堆点,扣掉后短处会连上,这种题也常用区间\(dp\)。(消除木块,恐狼后卫,最大收益,最小代价都是这种题),它们常要考虑删掉这段区间/点会产生的贡献,再加上外面的区间和,有时候还会开一些辅助数组或多开一个 阅读全文
posted @ 2024-11-12 20:52 煦阳gyy 阅读(12) 评论(0) 推荐(0)
摘要: 倍增\(dp\),其实就是\(dp\)有一维为走多少步,这个东西很大,没法硬枚举,恰好要求的是最值/路径和之类的东西,可将走多少步这一维\(i\)变为走\(2^i\)。 注:\(long\ long\)用位运算不能用\(1<<i\),要用\(1LL<<i\)(例1,例2) 倍增可用于维护树上某链最值 阅读全文
posted @ 2024-11-11 21:28 煦阳gyy 阅读(29) 评论(0) 推荐(0)
摘要: LCA做法千千万,倍增树剖占一半。LCA,我认为比较好用的是树剖版与倍增版,一般情况写倍增版,如果正好这题用树剖就写树剖版。倍增版其实就是用倍增处理出一个点向上跳几步是哪个点,然后求LCA时就先将深的点跳到浅的点齐平,再一起往上跳,注意不要调到公共祖先,而要跳到他的儿子处。模板 LCA过程中可求链上 阅读全文
posted @ 2024-11-09 21:34 煦阳gyy 阅读(21) 评论(0) 推荐(0)