티스토리 뷰

PS

LIS

Eastplanet 2021. 1. 28. 01:31

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;

int LIS(vector<int> arr, int index, int* dp) {
    int maxnum = 0;
    if (index == arr.size() - 1) {
        dp[index] = 1;
        return dp[index];
    }
    if (dp[index] == 0) {
        for (int i = index + 1; i < arr.size(); i++) {
            if (dp[i] != 0)maxnum = max(maxnum, dp[i]);
            else if (arr[index] < arr[i])maxnum = max(maxnum, LIS(arr, i, dp));
        }
        dp[index] = maxnum + 1;
        return dp[index];
    }
    return dp[index];
}






int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int c;
    cin >> c;
    while (c--) {
        int n;
        cin >> n;
        int* dp = new int[n];
        for (int i = 0; i < n; i++)dp[i] = 0;
        vector <int> arr;
        for (int i = 0; i < n; i++) {
            int mem;
            cin >> mem;
            arr.push_back(mem);
        }
        int mem = 0;
        for (int i = 0; i < arr.size(); i++) {
            mem = max(LIS(arr, i, dp), mem);
        }
        cout << mem << "\n";
        delete dp;
    }

}

'PS' 카테고리의 다른 글

[백준] 5547번 일루미네이션  (0) 2022.03.26
[백준] 24500번 blobblush  (0) 2022.03.24
2차원 배열을 함수의 인자로 전달(포인터로)  (0) 2021.01.20
clock sync  (0) 2021.01.17
boardcover  (0) 2021.01.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함