CodeForces - 566 D Restructuring Company - 및 검색 집합
754 단어 데이터 구조
#include
using namespace std;
const int maxn = 200000 + 10;
int n, q, par[maxn], next[maxn];
int seek(int x) { return par[x] == x ? x : par[x] = seek(par[x]); }
int main() {
scanf("%d %d", &n, &q);
for (int i = 0; i <= n; i++) par[i] = i, next[i] = i + 1;
while (q--) {
int op, x, y;
scanf("%d %d %d", &op, &x, &y);
if (op == 1) par[seek(x)] = seek(y);
else if (op == 2) {
while (x < y) {
par[seek(x)] = seek(y);
int t = next[x]; next[x] = next[y]; x = t;
}
}
else {
puts(seek(x) == seek(y) ? "YES" : "NO");
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.