树的数量 题目其实挺简单的,难点在于状态的设计(其实也没多难)。 令 \(f_i\) 表示 \(i\) 个点的 \(m\) 叉树的数量,发现无法转移。设 \(g_{i,j}\) 表示根节点所在子树内有 \(i\) 个节点,\(j\) 个儿子(儿子所...
树形 dp 介绍 概念 树形 dp,顾名思义,就是在树上做 dp,将 dp 的思想建立在树状结构之上。 常见的树形 dp 有两种转移方向: 从叶节点向根节点转移,这种也是树形 dp 中较为常见的一种。通常是在 dfs 回溯后时...
P1140 相似基因 考虑如何设计状态。 设给出的两个串为串 \(A\) 和串 \(B\),长度分别为 \(n\) 和 \(m\)。 我们用 \(f[i][j]\) 来表示前 \(i\) 个 \(A\) 串碱基和前 \(j\) 个 \(B\) 串碱基得到的最大相似度。 我们...
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5765 【题目大意】 给出一张图,求每条边在所有边割集中出现的次数。 【题解】 利用状压DP,计算不同的连通块,对于每条边,求出两边的联...
https://ac.nowcoder.com/acm/contest/1104/B 注意到\(\text{K}\)只有\(12\),因此对起点与每个毕经边对应的点单源最短路,\(\text{DP}\)出最优解 #include <cstring> #include <cstdio> #include <...
Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是...
思路:dp[i][j]的含义为str1[0..i]与str2[0..j]的最长公共子序列长度. #include<iostream> #include<string> using namespace std; const int maxn = 100; int main() { string str1,str2; ci...
棋盘 需要注意的几点: 题面编号都是从0开始的,所以第1行实际指的是中间那行 对\(2^{32}\)取模,其实就是\(unsigned\ int\),直接自然溢出啥事没有 棋子攻击范围不会旋转 首先,我们得找出所有满足条件的同一行...
http://acm.fzu.edu.cn/problem.php?pid=2225 Problem Description 在打败了易基•普罗布朗、诺姆•普罗布朗之后,小茗同学开始挑战哈德•普罗布朗。 一番交战之后,哈德展开了一大波攻击。小...
Road Trip Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 29, Accepted users: 29 Problem 12882 : No special judgement Problem description ...
2021.10.29 数位dp 1.数字计数 我们先设数字为ABCD 看A000,如果我们要求出它所有数位之和,我们会怎么求? 鉴于我们其实已经求出了0到9,0到99,0到999。。。上所有数字个数(f[i],且没有考虑前导0)我们何不把这...
# Description 小春现在很清闲, 面对书桌上的 \(N\) 张牌, 他决定给每张染色, 目前小春只有 \(3\) 种颜色: 红色, 蓝色, 绿色. 他询问 Sun 有 多少种染色方案, Sun 很快就给出了答案. 进一步, 小春要求染出 \(Sr\)...
里面会有一些数据结构优化 DP 的题目(如 XI.),以及普通 DP。 *I. P3643 [APIO2016]划艇 题意简述:给出序列 \(a_i,b_i\),求出有多少序列 \(c_i\) 满足 \(c_i=-1\) 或 \(c_i\in[a_i,b_i]\),同时非 \(-1\) 的...
题目链接 CF 633 F. The Chocolate Spree 题解 维护子数答案 子数直径 子数最远点 单子数最长直径 (最长的 最远点+一条链) 讨论转移 代码 #include<vector> #include<cstdio> #include<algorithm...
----19.7.30 今天又开了一个新专题,dp杂题,我依旧按照之前一样,这一个专题更在一起,根据个人进度选更题目; dp就是动态规划,本人认为,动态规划的核心就是dp状态的设立以及dp转移方程的推导,这也是训练的重...
最长公共子序列(NYOJ36) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序...