• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
xuanru
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理
上一页 1 2 3 下一页

2022年7月21日

树型dp
摘要: 在树上跑dp;一般都是dfs和bfs,有点像记忆化,向子树要答案,然后可以向上返回,在递归的过程中去dp,,与前面的dp类似,不同的是递归过程中跑dp; 1 int dfs(int x){ 2 if (x > n - m){ 3 f[x][1] = v[x]; 4 return 1; 5 } 6 i 阅读全文
posted @ 2022-07-21 20:28 蓒鳰 阅读(38) 评论(0) 推荐(0)
 
 

2022年7月20日

背包dp和区间dp
摘要: 背包dp就是选与不选的情况 dp[j] = max(dp[j], dp[j - a[i][k] * 2 - 1] + k*i);//这是一个背包dp题的转移方程 背包问题的题目都有明显的选与不选的情况,大多都能抽象成上面的方程; 区间dp,从小区间推大区间枚举长度从小到大,反之则相反; 1 int 阅读全文
posted @ 2022-07-20 21:37 蓒鳰 阅读(44) 评论(0) 推荐(0)
 
 

2022年7月19日

差分约束,背包问题
摘要: 差分约束,求最大值跑最短路,求最小值跑最长路, 最长路 xi-xj>=k添加j到i的权值为k的边 最短路xi-xj<=k添加j到i的权值为k的边 超级源点,到所有的点权值为0 注意用spfa跑时还要注意是否有负环 背包问题: 01背包 1 int w[N], v[N]; 2 int f[N]; 3 阅读全文
posted @ 2022-07-19 20:49 蓒鳰 阅读(30) 评论(0) 推荐(0)
 
 

2022年7月18日

二分最大匹配,树状数组
摘要: 二分最大匹配,为后面的km算法做准备 1 int n, m; 2 bool b[100]; 3 int v[100]; 4 vector<int>e[100]; 5 bool find(int x){ 6 b[x] = true; 7 for (int a : e[x]){ 8 if (!v[a] 阅读全文
posted @ 2022-07-18 20:16 蓒鳰 阅读(24) 评论(0) 推荐(0)
 
 

2022年7月15日

欧拉路,二分图
摘要: 欧拉路源自歌德七桥问题,一个点出发到达另一个,走过每一条边,出发点和终点相同称为欧拉回路 判断欧拉路,如果所有点联通,且入出度相同,或者仅有两个出入度相差为一则有欧拉路 欧拉回路出入度必须相同才成立 有向图最小欧拉路的求法 1 priority_queue<int>arr[N]; 2 int n, 阅读全文
posted @ 2022-07-15 21:07 蓒鳰 阅读(49) 评论(0) 推荐(0)
 
 

2022年7月13日

manacher和字典树
摘要: manacher求最大回文串, 1 char str[N]; 2 ll pre[N]; 3 ll ans = 0; 4 void getstr(string s){ 5 int dex = 0; 6 ll len = (ll)s.size() * 2 + 1; 7 for (ll i = 0; i 阅读全文
posted @ 2022-07-13 22:27 蓒鳰 阅读(24) 评论(0) 推荐(0)
 
 

2022年7月12日

lca和kmp
摘要: lca求公共祖先,一般使用倍增法 1 vector<int>son[N]; 2 int fa[N][35]; 3 int n, m; 4 int dep[N]; 5 void dfs(int x, int pre){ 6 fa[x][0] = pre; 7 dep[x] = dep[pre] + 1 阅读全文
posted @ 2022-07-12 20:38 蓒鳰 阅读(28) 评论(0) 推荐(0)
 
 

2022年7月11日

树的直径,树的重心
摘要: 树的直径指最长的路径,我们一般求此路径的两个端点,性质,中电的子树节点个数小于等于n/2; 一般两边dfs求取 1 struct edge{ 2 int to; 3 int w; 4 int next; 5 }e[N]; 6 int head[N]; 7 ll dis[N]; 8 ll dis2[N 阅读全文
posted @ 2022-07-11 20:08 蓒鳰 阅读(28) 评论(0) 推荐(0)
 
 

2022年7月9日

单调栈和单调队列
摘要: 单调栈利用栈实现单调化,求解问题的方式 单调栈可以求取最近的两边比自己大或者小的位置,再盛水和挡板类问题又应用,一般使用数组来替代stack容器 1 int arr[N]; 2 int s[N]; 3 int total=0; 4 int main(){ 5 ioscin; 6 int n; 7 c 阅读全文
posted @ 2022-07-09 21:48 蓒鳰 阅读(19) 评论(0) 推荐(0)
 
 

2022年7月8日

最小生成树,二叉树,哈希
摘要: 最小生成树:prim 与dijkstar相似,也可用堆优化 1 struct Edge{ 2 int to; 3 int next; 4 int w; 5 }edge[N*3]; 6 int first[N*3]; 7 int cnt=0; 8 void add(int u,int v,int w) 阅读全文
posted @ 2022-07-08 20:35 蓒鳰 阅读(49) 评论(0) 推荐(0)
 
 
上一页 1 2 3 下一页

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3