80pts求调

B3637 最长上升子序列

XURUIFAN @ 2024-08-13 08:59:26

Python代码如下:

n=int(input())#有len,用不着
n=[int(i) for i in input().split(" ")]
def DP(num):
    dp = [1]*num
    ans=0
    for i in range(num):
        for j in range(i):
            if n[i] > n[j]:
                dp[i] = max(dp[i], dp[j]+1)
        ans=max(ans,dp[i])
    return ans

print(DP(len(n)))

会TLE一个点


by ZMQ_Ink6556 @ 2024-08-13 09:18:15

@XURUIFAN python 就是容易 TLE,因为一些未知的语言问题 评测机的锅


by AqrDAD @ 2024-08-13 09:19:05

改后这样包过的

# include<bits/stdc++.h>
using namespace std;

const int N = 5005;

int n, a[N], sta[N], len;

int main(){
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);

    cin>>n;
    for(int i=1; i<=n; i++){
        cin>>a[i];
    }

    for(int i=1; i<=n; i++){
        if(a[i] > sta[len]) sta[++len] = a[i];
        else{
            int x = lower_bound(sta+1, sta+1+len, a[i]) - sta;
            sta[x] = a[i];
        }
    }

    cout<<len;

    return 0;
}

by XURUIFAN @ 2024-08-13 10:08:13

@AqrDAD 那我C++也能过啊,我是麻烦各位大佬帮忙调一下这个Python的 (C++提交记录)


by XURUIFAN @ 2024-08-13 10:10:05

@ZMQ_Ink6556 谢谢大佬指点,老老实实回去搞C++了
洛谷你给我解释一下为什么Python不行


|