본문으로 건너뛰기
SERIES · BOJ 풀이 로그

[BOJ] 1974번 Jump Jump Championship

[BOJ] 1974번 Jump Jump Championship 풀이

2025년 12월 21일 · 1 min read


[P5] Jump Jump Championship

정석적인 LIS + 역추적 문제에서 약간 변형이다.

vector<int> LIS(const vector<int>& v){
    int n = si(v);
    vector<int> pos(n), lis, res;
    for(int i = 0; i < n; i++){
        if(lis.empty() or lis.back() < v[i]){
            lis.push_back(v[i]); pos[i] = si(lis);
        }
        else{
            int idx = lower_bound(all(lis), v[i]) - lis.begin();
            lis[idx] = v[i], pos[i] = idx + 1;
        }
    }
    int len = si(lis);
    for(int i = n - 1; i >= 0; i--) if(pos[i] == len) res.push_back(i),len--;
    reverse(all(res));
    return res;
}
 
void solve(){
    int tc; cin >> tc;
    while(tc--){
        int n; cin >> n;
        vector<int> v(n);
        for(auto& i : v) cin >> i;
        auto res = LIS(v);
        cout << si(res) << "\n";
        for(const auto& i : res) cout << i + 1 << " ";
        cout << "\n";
    }
}
Tags:BOJPS
SERIES8 / 11회차

BOJ 풀이 로그

  1. 6.[BOJ] 33928번 나이트 오브 나이츠(Hard)
  2. 7.[BOJ] 6786번 Blood Distribution
  3. 8.[BOJ] 1974번 Jump Jump Championship지금 읽는 중
  4. 9.[BOJ] 20860번 DuTub
  5. 10.[BOJ] 29592번 Выпуклая оболочка

관련 글