
DP
limboWang
这个作者很懒,什么都没留下…
展开
-
【算法】- DP(动态规划)
AtCoder-DP专项题目地址,点这A - Frog 1#include <iostream>#include<cstring>#include<vector>#include<stdio.h>#include<queue>#include<math.h>#include<stack>#include<math.h>#include<algorithm>#include<原创 2021-03-10 14:15:24 · 230 阅读 · 0 评论 -
PAT甲级-1068 Find More Coins (30分)
题目:1068 Find More Coins (30分) 分析:背包问题,使用了滚动数组(刚开始看没看懂,看了好久,太菜了)。记录选择的方法在DP中比较常用。使用二维数组存放,v的枚举是顺序还是逆序都无所谓,但是!!!如果使用一维(滚动数组)存放,必须逆序。#include <iostream>#include<cstring>#include<vector>#include<stdio.h>#include<queue>#in.原创 2021-01-29 14:11:42 · 165 阅读 · 0 评论 -
PAT甲级-1045 Favorite Color Stripe (30分)
题目:1045 Favorite Color Stripe (30分) 分析:DP-----本题可用两种DP来解决,本题中要注意不是favorite的颜色不要加入DP,即num的计算。1、最长不下降子序列(LIS)dp[i]=max(1,dp[j] + 1)//dp[i]表示以a[i]结尾的最长的长度#include <iostream>#include<cstring>#include<vector>#include<stdio.h>#i.原创 2021-01-23 15:38:23 · 165 阅读 · 0 评论 -
PAT甲级-1040 Longest Symmetric String (25分)
题目:1040 Longest Symmetric String (25分) 分析:最长回文串,这里写复杂度为O(n²)的DP算法,最优的回文串算法为manacher(马拉车),这里不介绍(因为我太菜了┭┮﹏┭┮ ) 。dp[i][j]:表示s[i]到s[j]是不是回文子串dp[i][j] = dp[i+1][j-1] s[i] = s[j] 0 s[i] != s[j]边界: dp[i][i] = 1 if(s[i] == s[i+1]){ dp[i][i+1.原创 2021-01-22 13:53:50 · 143 阅读 · 0 评论 -
PAT甲级-1007 Maximum Subsequence Sum (25分)
题目:1007 Maximum Subsequence Sum (25分) 分析:最大子序列的和,DP,本题要记录最大子序列和的起始元素和末尾元素#include <iostream>#include<cstring>#include<vector>#include<stdio.h>#include<queue>#include<math.h>#include<stack>#include<algo.原创 2021-01-22 13:31:25 · 137 阅读 · 0 评论