Skip to main content
  1. Posts/
  2. Algorithm/

BOJ 9345 디지털 비디오 디스크(DVDs)

·157 words·1 min
Jiho Kim
Author
Jiho Kim
달려 또 달려

📝 문제 정보
#

🧐 관찰 및 접근
#

  • 수열에서의 swap연산이 주어지고, 수열의 $L, R$ 범위가 주어졌을 때 해당 범위에 $L \leq x \leq R$의 모든 수가 있는지 묻는 문제이다.
  • 합같은것으로는 저걸 구분할 수가 없다. $(3, 4)$나 $(2, 5)$나 같으니까.
  • 아하, DVD들끼리 겹치지 않으므로 구간 최소/최댓값을 이용하면 되겠다.

💻 풀이
#

  • 코드 (C++):
void solve(){
    int N, K; cin >> N >> K;
    vector<pii> a(N);
    rep(i, 0, N) a[i] = {i, i};
    SegmentTree ST(N, a);
    while(K--){
        int op, a, b; cin >> op >> a >> b;
        if(op == 0){
            int aval = ST.query(a, a).first;
            int bval = ST.query(b, b).first;
            ST.set(a, bval);
            ST.set(b, aval);
        }
        else{
            pii res = ST.query(a, b);
            if(res.first == a && res.second == b) cout << "YES\n";
            else cout << "NO\n";
        }
    }
}
🔒

구현 코드 잠금

아래 쿠팡 링크를 방문하시면 코드가 공개됩니다.
광고 수익이 블로그 운영에 도움이 됩니다 🙏

🛒 쿠팡 방문하고 코드 보기

방문 후 잠금이 자동으로 해제됩니다