最长公共子序列
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  |