会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
LRRabcd
博客园
首页
新随笔
联系
订阅
管理
2025年5月18日
算法总结—状压 DP2
摘要: 二维状压 DP 二维状压 DP 一般是放置问题。 [USACO06NOV] Corn Fields G 状态 \(dp_{i,j}\) 放好前 \(i\) 行,且第 \(i\) 行状态为 \(j\) 的方案数。 答案 \(\sum^{2^n-1}_{i=0} dp_{m,i}\) 状态转移方程 先假
阅读全文
posted @ 2025-05-18 19:20 LRRabcd
阅读(23)
评论(0)
推荐(0)
2025年5月11日
算法总结—区间 DP3+状压 DP1
摘要: 环形区间 DP 环形区间 DP 断环成链就可以了,答案就可以从 \([1,n],[2,n+1],[3,n+2],\cdots,[n,2n-1]\) 这些区间的答案。 [NOI1995] 石子合并 代码 #include<bits/stdc++.h> #define int long long usi
阅读全文
posted @ 2025-05-11 18:50 LRRabcd
阅读(7)
评论(0)
推荐(0)
2025年4月21日
算法总结—区间DP2
摘要: [USACO07OPEN] Cheapest Palindrome G 仍然是区间 DP,但时间复杂度不可能是 \(\mathcal{O}(m^3)\)。 状态 设 \(dp_{i,j}\) 表示将区间 \([i,j]\) 变成回文串的最小代价。 答案 问题是将整个字符串改为回文串,所以答案是\(d
阅读全文
posted @ 2025-04-21 14:42 LRRabcd
阅读(32)
评论(0)
推荐(0)
2025年4月14日
算法总结—区间DP1
摘要: 石子合并(弱化版) 状态 \(dp_{i,j}\) 表示把 \([i,j]\) 合成一堆所需要的最小代价。 答案 最小代价显然是 \(dp_{1,n}\)。 状态转移方程 可以把区间 \([i,j]\) 分成 两段 \([i,k],[k+1,j](i\leq k<j)\),所以 \(dp_{i,j}
阅读全文
posted @ 2025-04-14 13:21 LRRabcd
阅读(10)
评论(0)
推荐(0)
2025年4月12日
100000!=?
摘要: 100000!= 2824229407 9603478742 9342157802 4535518477 4949260912 2485057891 8086542977 9509010630 1787255177 1413831163 6107136117 3736196295 147499618
阅读全文
posted @ 2025-04-12 12:07 LRRabcd
阅读(47)
评论(0)
推荐(0)
2025年3月31日
算法总结—矩阵加速
摘要: 矩阵 矩阵类似于二维数组: \(A=\begin{bmatrix}a&b\\ c&d\end{bmatrix}\) 矩阵的用途 解方程。 加速线性 DP。 加速 Floyd。 常数乘法 \(Ak=\begin{bmatrix}ak&bk\\ ck&dk\end{bmatrix}\) 矩阵乘法 若 \
阅读全文
posted @ 2025-03-31 13:00 LRRabcd
阅读(106)
评论(0)
推荐(0)
2025年3月24日
算法总结—最近公共祖先1
摘要: 最近公共祖先定义 树上的两个点 \(a\) 和 \(b\),它们的祖先中相同且深度最深的节点就是 \(a\) 和 \(b\) 的最近公共祖。 求法 1.暴力 把 \(a\) 和 \(b\) 的所有祖先都标记上,在从下往上找第一个两个都标记了的点。单次询问的时间复杂度 \(\mathcal{O}(de
阅读全文
posted @ 2025-03-24 12:46 LRRabcd
阅读(23)
评论(0)
推荐(0)
2025年3月10日
算法总结—树的中心1
摘要: 树的中心定义 一棵树,当点 \(u\) 为根时,树的深度最小,\(u\) 就是树的中心。 关于树的中心的性质 树的中心最多有两个。如果有两个,一定相邻。 所有点到它最远的点的路径中一定有树的直径。 当书的中心为根时,以根为起点的最长链与次长链构成树的直径。 树的中心一定在树的直径上。 树的中心的求法
阅读全文
posted @ 2025-03-10 12:24 LRRabcd
阅读(110)
评论(0)
推荐(0)
2025年3月8日
最短路模板
摘要: \(\texttt{Floyd}\) 全源最短路 使用环境:\(n\leq 500\),可以有负边权 时间复杂度:\(\mathcal O(n^3)\) void Floyd(){ for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j
阅读全文
posted @ 2025-03-08 12:15 LRRabcd
阅读(18)
评论(0)
推荐(0)
公告