dp类题目总结(双序列和背包问题): 1、双序列题目 最长回文子串 最长公共子序列(diff实现) 编辑距离 交叉字符串 特点:(1)单字符串dp,用二维dp,i,j表示s[i:j+1](2)双字符串 的,dp[i][j]表示s1[:i]和s2[:j]推导s1[i] s2[j]关系 2、背包类DP 优先使用dfs+cache,逼不得已改dp 3、博弈类dp,用dfs+cache一维的dp要会,斐波
原创 2023-05-31 12:14:56
58阅读
通常的数位dp可以写成如下形式:int dfs(int i, int s, bool e)
转载 2023-03-03 14:03:34
116阅读
题目没有上司的舞会,支持单点修改思路动态DP模板大概思路是先树链剖分,对于每条重链,求出其所有轻儿子的DP值,然后用线段树合并到重链上至于怎么合并?矩阵乘法代码#include <bits/stdc++.h>#define ll long longusing namespace std;const int N=100005;int n,m,a[N],ecnt,adj[N],nxt[2*N],go[2*N],fa[N],son[N],sze[N],top[N],idx[N],
原创 2021-07-13 11:14:28
133阅读
题目题目背景ural 1519陈丹琦《基于连通性状态压缩的动态规划问题》中的例题。题目描述给出 n\times mn×m 的方格,有些格子不能铺线,其它格子必须铺,形成一个闭合回路。问有多少种铺法?输入格式第一行,两个整数,分别代表 n,mn,m。从第二行到第 (n+1)(n+1) 行,每行有一个长度为 mm 的只含 * 和 . 的字符串,* 表不能铺线,. 表必须铺。输出格式...
原创 2021-07-13 13:58:03
185阅读
题目题目描述给定一棵nn个点的树,点带点权。有mm次操作,每次操作给定x,yx,y,表示修改点xx的权值为yy。你需要在每次操作之后求出这棵树的最大权独立集的权值大小。输入格式第一行,n,mn,m,分别代表点数和操作数。第二行,V_1,V_2,…,V_nV1​ ,V2​ ,…,Vn​ ,代表nn个点的权值。接下来n-1n−1行,x,yx,y,描述这棵树的n-1n−...
原创 2021-07-13 14:49:40
57阅读
经典题型 数位 DP 问题往往都是这样的题型,给定一个闭区间 $[l, r]$,让你求这个区间中满足 某种条件 的数的总数。 强烈推荐 OI Wiki——数位DP 例题 BZOJ 1026 题目:windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 wi
转载 2019-08-13 17:36:00
142阅读
2评论
for(int len=1;len<=n;len++)//区间长度    {        for(int i=0;i<n;i++)//区间起点        {            j=len-1+i;//区间终点            for(int k=i;k<j;k++)//k把[i,j]分为[i,k],[k+1,j]            {             ...
原创 2021-06-29 15:37:46
304阅读
通常的数位dp写法int dfs(int i, int s, bool e) { if (i==-1) return s==target_s; if (!e && ~f[i][s]) return f[i][s]; int res = 0; int u = e?num[i]:...
转载 2014-04-20 21:42:00
190阅读
2评论
插头DP,模板
转载 2018-12-20 17:18:00
166阅读
2评论
#include #include #include #include using namespace std; int t; long long dp[19][19][2005]; long long l, r; int digit[20]; long long dfs(int len,...int if4..., bool limit) { if (len == 0) ...
转载 2018-08-05 14:46:00
193阅读
2评论
typedef long long ll; int a[20]; ll dp[20][state];//不同题目状态不同 ll dfs(int pos,/*state变量*/,bool lead/*前导零*/,bool limit/*数位上界变量*/)//不是每个题都要判断前导零 { //递归边界, ...
转载 2021-09-30 21:14:00
71阅读
2评论
int digit[maxn];int dp[maxn][][][][];//维度int dfs(int num, ,bool limit) //位数,传递条件(dp维度),上界判断{ if
原创 2022-08-31 10:32:46
50阅读
不能有49
转载 2019-04-15 20:46:00
125阅读
2评论
给一个26进制数n,a,b,c,...,z 分别代表十进制的0, 1, 2,....,25,且这个26进制数同样不含前缀0,比如aab非法,定义好的26进制数:数字中包含ccsu,比如bccsua是好的,但是ccasu是不好的,现在给你一个26进制数n,让你求 a 到 n 一共有多少个好的26...
原创 2022-03-13 11:19:27
59阅读
题目大意: 给出N个单词,每个单词有个非负权值Ci,现要将它们分成连续的若干段,每段的代价为此段单词的权值和,还要加一个常数M
原创 2022-07-05 10:03:12
59阅读
链接:https://ac.nowcoder.com/acm/contest/1076/A来源:牛客网给一个26进制数n,a,b,c,...,z 分别代表十进制的0, 1, 2,....,25,且这个26进制数同样不含前缀0,比如aab非法,定义好的26进制数:数字中包含ccsu,比如bccsua是好的,但是ccasu是不好的,现在给你一个26进制数n,让你求 a 到 n 一共有多少个好的26...
原创 2021-09-06 14:22:46
190阅读
题目描述设有N \times NN×N的方格图(N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 ...
原创 2022-10-26 19:57:05
156阅读
太好了!下面是我为你整理的一份非常实用的 ? 「换根 DP 模板小抄」,专为比赛/考试场景设计,结构清晰,覆盖常见题型和套路。 ? 换根 DP 模板小抄(建议收藏) ✅ 一、基本术语约定(通用变量) sum[u] // 当前以 u 为根的总代价(可加权距离和) size[u] // u 子树的权重和(例如:人口数 / 点权 / 子树大小) total // 整棵树的总权重(如总人口
原创 1月前
197阅读
题面 动态求最大独立集 题解
原创 2023-02-21 08:12:27
20阅读
模板】缩点 tarjan+dp 题目背景缩点+DP题目描述给定一个三至m+2行,每行两个整数...
原创 2023-04-25 00:29:38
286阅读
  • 1
  • 2
  • 3
  • 4
  • 5