dp[i] 表示以 i 结尾的最长长度,枚举前驱 j。
dp[i]
当 a[j]<a[i] 时可接在其后,取最大。
a[j]<a[i]
按照上述状态含义与转移顺序,每一步只使用已经正确求出的子问题;所有合法情况被完整计入,且互斥分类不会重复计数,因此最终输出即为题目所求。
严格上升使用 <,答案是所有 dp 的最大值。
完整标程见 std/main.cpp。
std/main.cpp
使用您的 星源智一OJ 通用账户