#24328: 題目和測資問題


angus.93321@gmail.com (bluemoon0321)

學校 : 國立科學工業園區實驗高級中學
編號 : 139711
來源 : [114.136.48.221]
最後登入時間 :
2021-08-21 11:35:29
d052. 11456 - Trainsorting -- UVa11456 | From: [220.137.90.16] | 發表日期 : 2021-02-06 23:32

題目說第一行會有一個n代表幾個數,但範例輸入好像不是這樣?

還有為什麼line 1的答案會是0呢,不是在怎麼樣都可以接一台嗎??

 

 
#24329: Re:題目和測資問題


angus.93321@gmail.com (bluemoon0321)

學校 : 國立科學工業園區實驗高級中學
編號 : 139711
來源 : [114.136.48.221]
最後登入時間 :
2021-08-21 11:35:29
d052. 11456 - Trainsorting -- UVa11456 | From: [220.137.90.16] | 發表日期 : 2021-02-06 23:51

題目說第一行會有一個n代表幾個數,但範例輸入好像不是這樣?

還有為什麼line 1的答案會是0呢,不是在怎麼樣都可以接一台嗎??

 


稍微看了一下後大概了解題目的意思,如果我沒有理解錯的話,請問我這樣寫錯在哪?

#include<bits/stdc++.h>

using namespace std;

int lis(int n);

int a[2001];

int dp[2001];

int main(){

    int m;

    cin>>m;

    int z=0;

    while(z!=m){

        int n;

        cin>>n;

        if(n==0){

            cout<<0<<endl;

            continue;

        }

        for(int i=1;i<=n;i++){

            cin>>a[i];

        }

        for(int i=0;i<2001;i++){

            dp[i]=-1;

        }

        int ans=0;

        for(int i=1;i<=n;i++){

            if(lis(i)>ans) ans=lis(i);

        }

        cout<<ans<<endl;

        z++;

        }

}

int lis(int n){

    if(n==1){

        return 1;

    }

    if(dp[n]!=-1) return dp[n];

   int ans=1;

    for(int i=1;i<=n;i++){

        if(a[n]>a[i]){

            int now=lis(i)+1;

            if(now>ans) ans=now;

        }

    }

    dp[n]=ans;

    return ans;

}

 
#29044: Re:題目和測資問題


es611543 (afa)

學校 : 基隆市私立二信高級中學
編號 : 93767
來源 : [36.227.70.47]
最後登入時間 :
2024-04-19 18:48:23
d052. 11456 - Trainsorting -- UVa11456 | From: [220.137.12.202] | 發表日期 : 2022-01-24 22:09

題目敘述中 0<=n<=2000,n有可能是0



 
ZeroJudge Forum