最后一个点
查看原帖
最后一个点
937859
Guagua111一只蒟蒻楼主2024/11/6 13:13
#include <iostream>
#include <string.h>
#define inf 0x7fffffff
using namespace std;
int n, a[100005], dp[100005], len;

int main() {
    do {
        cin >> a[++n];
    } while (getchar() == ' ');

    //question 1
    dp[0] = inf;
    for (int i = 1; i <= n; i++) {
        if (dp[len] >= a[i]) {
            dp[++len] = a[i];
            continue;
        }
        int l = 1, r = len, index = 0;
        while (l <= r) {
            int mid = (l + r) / 2;
            if (dp[mid] < a[i]) {
                index = mid;
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        dp[index] = a[i];
    }
    cout << len << '\n';

    //question 2
    memset(dp, 0, sizeof(dp));
    len = 0;
    dp[0] = -1;
    for (int i = 1; i <= n; i++) {
        if (dp[len] < a[i]) {
            dp[++len] = a[i];
            continue;
        }
        int l = 1, r = len, index = 0;
        while (l <= r) {
            int mid = (l + r) / 2;
            if (dp[mid] >= a[i]) {
                index = mid;
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        dp[index] = a[i];
    }
    cout << len;
    return 0;
}

提交记录
最后一个点 WA\color{red}\texttt{WA} 了,请问代码哪里有问题?

2024/11/6 13:13
加载中...