最长公共子序列
dp[i][j]
,A序列前i个和B序列的前j个的最长公共子序列。
最长递增序列(蓝桥骑士)
题目:
https://www.lanqiao.cn/problems/1188/learning/
DP代码(超时)
1 | n = int(input()) |
二分代码
1 | import bisect |
编辑距离(字符串转换)
题目
https://www.lanqiao.cn/problems/1507/learning/
代码
1 | s = "." + input() |
网格图上的DP
题目:过河卒
https://www.lanqiao.cn/problems/755/learning/
代码
1 | b1, b2, h1, h2 = map(int, input().split()) |
积木画
https://www.lanqiao.cn/problems/2110/learning/
1 | mod = 1000000007 |
采药
https://www.lanqiao.cn/problems/563/learning/
1 | T, M = map(int, input().split()) |
摆花
https://www.lanqiao.cn/problems/389/learning/
1 | import sys |
这题有两个大坑!首先就是不是所有花都必须要放上去,然后是a[i]
可以是0。
合唱队形
https://www.lanqiao.cn/problems/742/learning/
最长递增子序列
其他答案求LiS
的dp都感觉不太对,所求的dp[i]
并不是序列前i
个数的最长子序列。这个地方折磨了我好久。
这题就是分别找出从左往右和从右往左的最长递增子序列,然后再操作就好了。
1 | n = int(input()) |
游园安排
有点难,参考了题解。
1 | import bisect |