QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#485179 | #8593. Coin | fractal | 19 | 248ms | 34384kb | C++17 | 2.7kb | 2024-07-20 14:43:27 | 2024-07-20 14:43:28 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define make_unique(x) sort(all(x)), x.erase(unique(all(x)), x.end())
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 Rng(chrono::steady_clock::now().time_since_epoch().count());
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int N = 1e6 + 200;
const int M = 1e6;
const int inf = 2e9 + 3;
const ll INF = 1e18;
int n, m;
vector<int> g[N];
int can[1001][1001];
int ans[N], now[N], d[N];
int sz = 0;
int u[N], C, pos[N];
void dfs(int v) {
u[v] = C;
for (auto to : g[v]) {
if (u[to] == C) continue;
dfs(to);
}
++sz;
if (pos[v] && pos[v] != sz) {
ans[v] = -1;
}
pos[v] = sz;
}
int main() {
ios_base::sync_with_stdio(0), cin.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; ++i)
ans[i] = -1;
if (n <= 100) {
vector<int> Ans(n + 1, -1);
for (int i = 1, x, y; i <= m; ++i) {
cin >> x >> y;
g[x].push_back(y);
for (int j = 1; j <= n; ++j) {
ans[j] = i;
pos[j] = 0;
}
int T = 200;
while (T--) {
vector<int> v(n);
iota(v.begin(), v.end(), 1);
shuffle(v.begin(), v.end(), rng);
for (int j = 1; j <= n; ++j)
shuffle(g[j].begin(), g[j].end(), rng);
++C;
sz = 0;
for (int j : v) {
if (u[j] != C) {
dfs(j);
}
}
}
for (int j = 1; j <= n; ++j) {
if (ans[j] == i && Ans[j] == -1) Ans[j] = i;
}
}
for (int i = 1; i <= n; ++i)
cout << Ans[i] << " \n"[i == n];
return 0;
}
for (int i = 1, x, y; i <= m; ++i) {
cin >> x >> y;
g[x].push_back(y);
d[y]++;
}
C = 1;
for (int i = 1; i <= n; ++i) {
ans[i] = m;
if (u[i] == 0) {
dfs(i);
}
}
int T = 300;
while (T--) {
vector<int> v(n);
iota(v.begin(), v.end(), 1);
shuffle(v.begin(), v.end(), rng);
for (int i = 1; i <= n; ++i)
shuffle(g[i].begin(), g[i].end(), rng);
++C;
sz = 0;
for (int i : v) {
if (u[i] != C) {
dfs(i);
}
}
}
for (int i = 1; i <= n; ++i)
cout << ans[i] << " \n"[i == n];
}
詳細信息
Subtask #1:
score: 6
Accepted
Test #1:
score: 6
Accepted
time: 0ms
memory: 31272kb
input:
4 4 2 4 3 1 4 1 2 3
output:
3 4 -1 -1
result:
ok ac
Test #2:
score: 6
Accepted
time: 3ms
memory: 31184kb
input:
6 8 1 5 5 4 6 2 2 5 4 3 6 1 6 5 2 1
output:
8 8 5 5 5 6
result:
ok ac
Test #3:
score: 6
Accepted
time: 3ms
memory: 32100kb
input:
2 1 1 2
output:
1 1
result:
ok ac
Test #4:
score: 6
Accepted
time: 0ms
memory: 32380kb
input:
6 12 1 5 5 4 6 2 2 5 4 3 6 5 1 5 1 5 2 4 6 3 1 3 4 3
output:
-1 -1 5 5 5 -1
result:
ok ac
Test #5:
score: 6
Accepted
time: 4ms
memory: 32696kb
input:
7 20 1 6 6 3 1 4 1 5 1 7 1 2 1 5 2 3 4 5 7 2 2 4 5 3 6 3 1 3 4 3 7 5 2 6 4 6 7 2 7 5
output:
6 17 12 18 -1 -1 17
result:
ok ac
Test #6:
score: 6
Accepted
time: 3ms
memory: 32552kb
input:
7 20 5 6 1 3 3 6 4 1 7 4 2 5 4 3 2 6 7 5 4 6 2 6 2 1 4 5 1 3 1 5 7 1 7 6 4 1 7 6 3 6
output:
15 -1 -1 -1 -1 6 -1
result:
ok ac
Test #7:
score: 6
Accepted
time: 0ms
memory: 32016kb
input:
7 20 7 6 4 5 6 4 3 6 4 1 6 2 3 5 5 2 7 6 1 2 3 6 6 4 7 1 6 1 7 1 4 5 3 6 3 5 4 5 3 1
output:
-1 10 -1 8 -1 6 -1
result:
ok ac
Subtask #2:
score: 8
Acceptable Answer
Dependency #1:
100%
Accepted
Test #8:
score: 16
Accepted
time: 11ms
memory: 31700kb
input:
20 100 5 20 4 5 18 16 1 13 14 9 11 19 6 4 7 20 16 11 8 13 4 5 16 9 12 14 7 12 11 3 9 11 9 11 13 6 3 10 12 9 13 4 20 12 13 6 18 11 5 7 5 7 15 18 12 15 17 13 15 18 3 2 11 2 11 2 15 19 4 19 14 19 14 9 17 3 1 18 8 10 16 19 1 6 7 2 5 12 1 18 8 20 5 18 8 5 4 16 1 15 5 19 18 19 17 10 1 10 17 3 10 2 3 10 17...
output:
-1 -1 -1 31 31 31 31 -1 31 -1 31 31 31 -1 71 -1 -1 -1 -1 31
result:
ok ac
Test #9:
score: 8
Acceptable Answer
time: 248ms
memory: 31492kb
input:
100 400 87 45 42 17 9 81 65 10 8 82 76 48 39 73 21 58 76 30 76 92 74 76 99 90 38 50 86 74 75 52 8 2 80 55 20 95 66 60 78 82 10 18 22 59 23 17 63 76 56 51 38 10 50 65 41 28 64 77 59 53 100 66 38 84 23 47 17 9 45 75 41 28 33 41 8 78 2 95 3 11 40 15 60 63 23 17 82 2 61 44 44 16 77 34 100 66 96 99 68 12...
output:
-1 -1 187 -1 183 -1 -1 -1 183 -1 187 -1 -1 187 183 187 183 -1 -1 -1 -1 183 -1 183 -1 -1 183 183 -1 -1 -1 -1 183 187 -1 -1 187 183 183 183 -1 -1 183 187 183 188 -1 -1 -1 -1 183 -1 183 183 -1 -1 -1 -1 183 -1 187 -1 -1 187 -1 187 -1 -1 -1 -1 -1 -1 183 -1 183 183 187 -1 188 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1...
result:
points 0.50 -1 correct
Subtask #3:
score: 5
Acceptable Answer
Dependency #1:
100%
Accepted
Dependency #2:
50%
Acceptable Answer
Test #10:
score: 5
Acceptable Answer
time: 16ms
memory: 33836kb
input:
1000 4000 619 298 211 477 584 418 812 280 978 268 280 345 715 364 73 664 915 819 535 28 110 959 384 663 773 315 792 250 374 80 134 202 779 416 613 334 318 756 21 812 424 997 664 277 151 963 299 438 955 988 532 653 521 43 121 20 902 849 237 305 272 893 325 792 469 549 891 531 612 810 294 256 188 990 ...
output:
-1 4000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 4000 4000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 4000 4000 4000 -1 -1 -1 -1 4000 -1 -1 -1 -1 -1 -1 -1 4000 -1 -1 4000 4000 -1 -1 -1 -1 -1 -1 -1 -1 -1 4000 -1 -1 -1 -1 -1 -1 4000 -1 -1 -1 4000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 4000 -1 -1 -1 -1 -1...
result:
points 0.50 -1 correct
Test #11:
score: 5
Acceptable Answer
time: 16ms
memory: 34048kb
input:
1000 4000 229 403 665 867 715 618 306 900 423 567 515 288 39 754 782 321 516 969 432 89 304 726 837 39 648 991 870 369 84 681 864 41 682 940 565 914 724 763 694 112 969 815 864 41 975 868 662 803 707 465 905 791 116 115 823 578 949 588 589 522 775 447 795 130 366 456 993 910 187 396 102 774 143 90 9...
output:
4000 -1 -1 4000 4000 4000 -1 -1 -1 -1 4000 -1 4000 -1 -1 4000 -1 -1 -1 4000 -1 -1 4000 -1 4000 4000 4000 4000 -1 4000 -1 -1 4000 -1 4000 -1 -1 -1 -1 -1 -1 -1 -1 4000 -1 -1 4000 -1 4000 -1 4000 -1 4000 -1 -1 -1 -1 -1 -1 -1 4000 -1 4000 4000 4000 -1 4000 4000 4000 -1 -1 -1 -1 -1 4000 -1 4000 -1 4000 4...
result:
points 0.50 -1 correct
Test #12:
score: 5
Acceptable Answer
time: 14ms
memory: 34212kb
input:
1000 4000 693 317 927 745 607 353 336 456 182 240 100 824 252 317 88 828 436 714 833 621 533 704 63 735 522 518 900 283 135 829 627 459 601 176 876 806 573 140 380 898 870 795 990 876 943 148 500 462 808 486 920 463 794 7 531 181 60 105 497 875 859 469 997 575 706 838 296 194 453 793 310 673 771 307...
output:
4000 4000 -1 -1 -1 -1 4000 4000 -1 4000 -1 4000 4000 -1 4000 -1 4000 4000 -1 -1 -1 -1 -1 4000 4000 4000 -1 -1 -1 4000 -1 4000 -1 -1 -1 -1 4000 -1 4000 -1 4000 -1 4000 -1 -1 4000 4000 4000 4000 -1 4000 4000 4000 -1 4000 4000 -1 4000 4000 4000 -1 -1 4000 -1 -1 4000 -1 4000 4000 4000 4000 4000 -1 4000 ...
result:
points 0.50 -1 correct
Subtask #4:
score: 0
Time Limit Exceeded
Dependency #1:
100%
Accepted
Dependency #2:
50%
Acceptable Answer
Dependency #3:
50%
Acceptable Answer
Test #13:
score: 34
Acceptable Answer
time: 140ms
memory: 34384kb
input:
10000 24156 6770 9800 71 3709 5373 2058 9145 5993 9973 456 1562 628 839 3483 9354 9169 7105 7062 4434 4044 2147 534 7337 1981 719 3853 8205 8198 1286 7343 246 4189 1324 8878 547 3468 2219 8650 7265 5823 6382 5720 6219 1258 8893 466 5615 9147 7763 7160 3652 6512 7594 7169 235 1287 6487 2049 6894 853 ...
output:
-1 -1 -1 -1 -1 -1 -1 24156 -1 -1 24156 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 24156 24156 -1 -1 -1 -1 -1 -1 -1 -1 24156 -1 -1 -1 -1 24156 -1 -1 -1 -1 -1 -1 -1 24156 -1 -1 -1 -1 -1 24156 -1 -1 24156 24156 -1 24156 24156 -1 -1 -1 -1 24156 -1 -1 -1 -1 24156 -1 -1 -1 -1 -1 -1 24156 -1 -1 -1 -1 24156 -1 -1 ...
result:
points 0.50 -1 correct
Test #14:
score: 0
Time Limit Exceeded
input:
200000 468137 35741 15045 1120 91913 22147 173548 159967 11985 16594 176358 9659 38704 191979 69853 143002 8669 21000 41718 133024 156174 117934 139285 195752 71163 147173 197600 11162 174429 73822 144204 54279 46442 117136 26281 57220 169661 66060 17651 79359 190948 157353 39342 174367 171524 20596...