QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#569475#9310. Permutation Counting 4KobicGendTL 0ms3632kbC++201.6kb2024-09-16 23:26:342024-09-16 23:26:35

Judging History

你现在查看的是最新测评结果

  • [2024-09-18 14:56:40]
  • hack成功,自动添加数据
  • (/hack/835)
  • [2024-09-18 14:41:06]
  • hack成功,自动添加数据
  • (/hack/831)
  • [2024-09-17 12:14:52]
  • hack成功,自动添加数据
  • (/hack/825)
  • [2024-09-16 23:26:35]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:3632kb
  • [2024-09-16 23:26:34]
  • 提交

answer

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <array>
#include <numeric>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <stack>
#include <bitset>
using namespace std;
using ll = long long;
#include <vector>
#include <numeric>

struct DSU {
	vector<int> p, siz;

	DSU() {}
	DSU(int n) {
		init(n);
	}

	void init(int n) {
		p.resize(n + 1);
		iota(p.begin(), p.end(), 0);
		siz.assign(n + 1, 1);
	}

	int find(int x) {
		while (x != p[x]) x = p[x] = p[p[x]]; // 路径压缩
		return x;
	}

	bool same(int x, int y) {
		return find(x) == find(y);
	}

	bool uno(int x, int y) {
		x = find(x), y = find(y);
		if (same(x, y)) return false;
		siz[x] += siz[y];
		p[y] = x;
		return true;
	}

	int size(int x) {
		return siz[find(x)];
	}
};

int read() {
	char u, v;
	cin >> u >> v;
	return (u - 48) * 50 + v - 48;
}

void eachT() {
	int n;
	cin >> n;

	vector<vector<int>> v(n + 2);
	for (int i = 0; i < n; ++i) {
		int l, r;
		cin >> l >> r;
		v[l].push_back(r);
	}

	bool ok = 1;

	for (int l = 1; l <= n; ++l) {
		if (v[l].empty()) {
			ok = 0;
			continue;
		}

		sort(v[l].begin(), v[l].end(), greater<>());
		int big = v[l][0];

		for (int j = 1; j < v[l].size(); ++j) {
			if (v[l][j - 1] == v[l][j]) {
				ok = 0;
			}
			int r = v[l][j];
			v[r + 1].push_back(big);
		}
	}

	cout << ok << '\n';
}

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int T = 1;
	cin >> T;

	while (T--) {
		eachT();
	}

	return 0;
}






Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3632kb

input:

4
5
1 2
1 5
1 2
1 2
2 2
5
1 1
2 4
2 3
5 5
3 4
5
3 5
1 2
3 4
3 5
3 3
5
1 5
1 4
4 5
5 5
1 2

output:

0
1
0
0

result:

ok 4 tokens

Test #2:

score: -100
Time Limit Exceeded

input:

66725
14
7 7
4 6
7 8
8 13
2 13
6 13
6 10
14 14
1 10
9 11
7 9
3 8
4 12
5 12
12
2 6
3 6
7 11
2 5
1 1
6 12
8 12
2 3
7 9
7 8
1 10
1 4
10
4 8
4 4
6 10
9 10
2 3
2 7
1 3
3 4
2 2
3 10
20
3 12
10 14
19 20
19 20
1 9
7 9
13 16
17 17
16 18
2 11
5 19
6 17
11 17
3 6
3 11
7 20
8 17
3 18
10 15
9 20
16
5 10
2 10
2 1...

output:


result: