
动态规划
weixin_43763889
这个作者很懒,什么都没留下…
展开
-
POJ2955 Brackets && poj 1141Brackets Sequence (区间dp)
poj 2955题意给你一个括号序列,求最长合法括号序列子串的长度题解dp[i][ j]表示区间 i 到 j 之间最长合法括号子串的长度,dp[ i ][ j ] 如果s[i] == s[j],dp[ i ][ j ] = dp[i+1][j-1], 更新最大值的方法是枚举 i 和 j 的中间值,然后让 dp[ i ] [ j ] = max ( dp [ i ] [ j ] , dp ...原创 2019-12-09 13:00:40 · 123 阅读 · 0 评论 -
HDU 4632 Palindrome subsequence(区间dp)
题意给你一个字符串要你统计其中出现过多少个不同的回文子串,回文子串不一定每个字符都连续,不同是说位置不同如aba的答案就是5 因为不同的回文子串有a(第一个a), b,aa(因为子串的字符可以不连续), aba,a(最后一个a)题解 :假设s[i] != s[j],dp[i~j] 就是由s[i+1 ~ j] 或 s[i ~ j -1] 前后加一个求出,dp[i][j] = dp[i+1][j...原创 2019-12-08 16:39:47 · 125 阅读 · 0 评论 -
Cheapest Palindrome(区间DP)
题意:给你一个字符串,将它变成一个回文字符串,添加或删除一个字母都有相应的价值,求最小价值题解:区间DP,从小区间推到大区间,dp[i][j]代表将s[i-j]变为回文字符串的最小代价,一个字母肯定是回文字符串,所以dp[i][i] =0, 如果s[i] == s[j],说明这个串已经是一个回文串(区间里面已经是回文字符串),则dp[i][j] = dp[i+1][j-1],当s[i] != ...原创 2019-12-05 15:26:54 · 166 阅读 · 0 评论 -
The least round way(dp)
The least round way给你一个n*n的矩阵,求从左上角到右下角的所有路径中,最后乘机末尾0最小的路径,输出末尾0的个数和路径题解将每个数提取质因数2和5,然后dp每个点2和5的个数,最后取两个中最小的,如果矩阵中有0, 且5和2的最小值不为0,则随便输出一个经过0的路径#include <iostream>#include <cstdio>us...原创 2019-08-28 21:55:44 · 910 阅读 · 0 评论 -
Mysterious Present(dp)
Mysterious Present题目描述给你一张卡片的宽和高和n个信封,信封可以一个套一个,但长和宽要大于上一个,求最多能有多少个信封套在一起,并输出哪几个信封解题思路dp问题,先将一个数排序,再比较另外一个数dp,同时另外一个数也要注意不能相等#include <iostream>#include <algorithm>#include <cstr...原创 2019-08-30 16:24:37 · 222 阅读 · 0 评论 -
LCIS CodeForces - 10D(区间dp)
LCIS CodeForces - 10D给你两个串,求公共最长上升子序列题解:区间dp问题 dp[i][j] 表示第一个序列前i个和第二个序列前j个最长的公共上升子序列 ,if(a[ i] != b[j]) dp[i] [j] = dp[i-1][j]; 如果相等,dp[i][j] = dp[i][k] + 1 ( 0<k < j, b[j] > b[k] )...原创 2019-09-19 21:47:36 · 174 阅读 · 0 评论