From 133bb2bb88013ecf834539b918cd4c829ea97ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Mar 2024 16:15:07 +0800 Subject: [PATCH] 'commit' --- TangDou/AcWing_TiGao/T1/LIS/LIS+LCS专题.md | 17 +++++++++++++++++ .../T1/NumberTriangles/数字三角形专题.md | 9 +++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 TangDou/AcWing_TiGao/T1/LIS/LIS+LCS专题.md diff --git a/TangDou/AcWing_TiGao/T1/LIS/LIS+LCS专题.md b/TangDou/AcWing_TiGao/T1/LIS/LIS+LCS专题.md new file mode 100644 index 0000000..26eb28d --- /dev/null +++ b/TangDou/AcWing_TiGao/T1/LIS/LIS+LCS专题.md @@ -0,0 +1,17 @@ +## $LIS$+$LCS$专题 + +#### 基础题 +[AcWing 895. 最长上升子序列](https://www.acwing.com/problem/content/897/) +[AcWing 896. 最长上升子序列 II ](https://www.acwing.com/problem/content/898/) +[AcWing 897. 最长公共子序列](https://www.acwing.com/problem/content/899/) + + +#### 进阶题 +AcWing 1017. 怪盗基德的滑翔翼 +AcWing 1014. 登山 +AcWing 482. 合唱队形 +AcWing 1012. 友好城市 +AcWing 1016. 最大上升子序列和 +AcWing 1010. 拦截导弹 +AcWing 187. 导弹防御系统 +AcWing 272. 最长公共上升子序列 \ No newline at end of file diff --git a/TangDou/AcWing_TiGao/T1/NumberTriangles/数字三角形专题.md b/TangDou/AcWing_TiGao/T1/NumberTriangles/数字三角形专题.md index 2494ffd..df20be9 100644 --- a/TangDou/AcWing_TiGao/T1/NumberTriangles/数字三角形专题.md +++ b/TangDou/AcWing_TiGao/T1/NumberTriangles/数字三角形专题.md @@ -37,7 +37,7 @@ $f[i][j]$可以从哪些状态转移而来,答:从上方或左方过来 ③ 一维状态表示,我理解不如二维直观,最起码思路应该是先有两维再缩成一维,而不是上来就直接一维。一般的题目不会对内存有严格的限制,能用二维还是二维吧,实在卡内存再考虑降为一维。 **[$AcWing$ $1018$. 最低通行费](https://www.acwing.com/problem/content/1020/)** -与上一题基本一样,只不过是变换了下,需要你用思维转一下:$2n-1$次,就是说只能向下或向右,否则次数就不达标了。还有一点,就是需要求最小值,而不是最大值,其它的没区别 +与上一题基本一样,只不过是变换了下,需要你用思维转换一下:$2n-1$次,就是说只能向下或向右,否则次数就不达标了。还有一点,求最小值,而不是最大值,其它的没区别 ```cpp {.line-numbers} //初始化为最大值 memset(f, 0x3f, sizeof f); @@ -61,12 +61,17 @@ for (int i = 1; i <= n; i++) 解决办法就是把两次一起考虑,转化为有两个小人一起走,步调一致,此时两个相亲相爱,互相照顾,白头偕老,皆大欢喜: 状态表示也就呼之欲出: + +**状态表示** +① 两个坐标共同决定了现在的状态,换句话说,状态和上面的两个坐标都是相关的 +② 当你发现一维不足以表示当前状态时,考虑扩二维,二维不行再考虑扩三维,以此类推。 + $f[x_1][y_1][x_2][y_2]$表示第1个人走到$(x_1,y_1)$,第2个人走到$(x_2,y_2)$,但需要保证$x_1+y_1=x_2+y_2$ + **状态转移**: ① 如果两个人走到同一个位置,就可能加上一次这个位置上的数 ② 如果两个人走到不同的位置,就可以加上两个地方上的数 -③ 两个坐标共同决定了现在的状态,换句话说,状态和上面的两个坐标都是相关的 ```cpp {.line-numbers}