so easy(并查集+unordered_map)
Posted wjc2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了so easy(并查集+unordered_map)相关的知识,希望对你有一定的参考价值。
There are nn points in an array with index from 11 to nn, and there are two operations to those points.
1: 1 \ x1 x marking the point xx is not available
2: 2 \ x2 x query for the index of the first available point after that point (including xx itself) .
Input
n\quad qnq
z_1 \quad x_1z1?x1?
\vdots?
z_q\quad x_qzq?xq?
qq is the number of queries, zz is the type of operations, and xx is the index of operations. 1≤x<n<10^91≤x<n<109, 1 \leq q<10^61≤q<106 and zz is 11 or 22
Output
Output the answer for each query.
样例输入
5 3 1 2 2 2 2 1
样例输出
3 1
#include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 100; unordered_map<int, int> fa; int findfa(int x) if (!fa.count(x)) return x; return fa[x] = findfa(fa[x]); int main() int n, q; scanf("%d %d", &n, &q); int op, x; while (q--) scanf("%d %d", &op, &x); if (op == 1) fa[x] = findfa(x + 1); else int ans = findfa(x); if (ans > n) ans = -1; printf("%d\n", ans); return 0;
以上是关于so easy(并查集+unordered_map)的主要内容,如果未能解决你的问题,请参考以下文章
B1. Books Exchange (easy version)1000 / 并查集
CF #738(div2)D1. Mocha and Diana (Easy Version)(暴力,并查集)