代码源动态规划初级刷题(自用)

1. dp概述

  • 103 最长上升子序列
点击查看代码
const int N = 1e6 + 10;

int n, m;
int a[N], f[N];

void solve() {  
    cin >> n;
    for (int i = 1; i <= n; i ++) cin >> a[i];
    for (int i = 1; i <= n; i ++) {
        f[i] = 1;
        for (int j = 1; j < i; j ++) {
            if (a[j] < a[i]) {
                f[i] = max(f[i], f[j] + 1);
            }
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; i ++)
        ans = max(ans, f[i]);
    cout << ans << endl;
    return ;
}

2.

posted @ 2024-03-18 08:08  ComistryMo  阅读(10)  评论(0)    收藏  举报