【算法竞赛】动态规划DP
【算法竞赛】动态规划DP
Mr.zwX
2019年进入电子科技大学接触计算机(机器学习/深度学习(CV、NLP、GNN)、时空数据挖掘、一点点前后端开发),2022年在电子科技大学实验室科研,2023年在复旦大学NLP组实习,2023年9月至今,在北京大学人工智能研究院科研(模型加速/压缩、隐私计算)...保持努力,anyway,这个平台是我记录一些乱七八糟计算机笔记的地方,供(记性不好的)自己复习,同时也分享给大家。如需联系:请发邮件至wenxuan225@qq.com
展开
-
最长不下降子序列(LIS)
题目简述 在第一行输入一个数nnn表示这个序列的字符数,后面输入这nnn个数。找出最长不下降子序列的长度和这个序列的字符。 题解 这道LISLISLIS的题目我们选择用动态规划的思路来做,设计一个动态转移方程: dp[i]=max(dp[i],dp[j]+1).dp[i]=max(dp[i],dp[j]+1).dp[i]=max(dp[i],dp[j]+1).这里的dp[j]dp[j]dp[j]是前面的状态,如果在满足的条件之下,dp[j]+1dp[j]+1dp[j]+1更大,则最大长度取这个值。经历时间复原创 2020-05-24 17:21:54 · 356 阅读 · 0 评论 -
P1439_最长公共子序列的一般解法
题意 给出两个序列X和Y,找出X和Y的最大公共子序列长度 input:abcdfbc abfcab output:4 input:programming contest output:2 input:abcd mnpoutput:0 题解 用dp算法找出最大公共子序列的长度maxlen #include<bits/stdc++.h> using namespace std; const int N = 1001; char s1[N],s2[N]; int maxlen[N][N]; i原创 2020-05-21 00:05:21 · 140 阅读 · 0 评论 -
luogu_P1216 [USACO1.5][IOI1994] Number Triangles
题目描述 传送门 题解 这是一道经典的动态规划入门题目,列出状态转移方程是至关重要的! dp(i,j)=max(dp(i−1,j),dp(i−1,j−1))+a(i,j).dp(i,j) = max(dp(i-1,j),dp(i-1,j-1))+a(i,j).dp(i,j)=max(dp(i−1,j),dp(i−1,j−1))+a(i,j). dp[i][j]=max(dp[i−1][j],dp[i−1][j−1])+a[i][j].dp[i][j] = max(dp[i-1][j],dp[i-1][j-原创 2020-05-20 23:10:39 · 205 阅读 · 0 评论