QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#441447 | #8531. A Graph Problem | green_gold_dog# | 13.043478 | 76ms | 4404kb | C++14 | 4.1kb | 2024-06-14 15:18:10 | 2024-06-14 15:18:10 |
Judging History
answer
//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx,avx2,sse,sse2,sse3,ssse3,sse4,abm,popcnt,mmx")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef long double ldb;
typedef complex<double> cd;
constexpr ll INF64 = 9'000'000'000'000'000'000, INF32 = 2'000'000'000, MOD = 1'000'000'007;
constexpr db PI = acos(-1);
constexpr bool IS_FILE = false, IS_TEST_CASES = false;
random_device rd;
mt19937 rnd32(rd());
mt19937_64 rnd64(rd());
template<typename T>
bool assign_max(T& a, T b) {
if (b > a) {
a = b;
return true;
}
return false;
}
template<typename T>
bool assign_min(T& a, T b) {
if (b < a) {
a = b;
return true;
}
return false;
}
template<typename T>
T square(T a) {
return a * a;
}
template<>
struct std::hash<pair<ll, ll>> {
ll operator() (pair<ll, ll> p) const {
return ((__int128)p.first * MOD + p.second) % INF64;
}
};
struct DSU {
vector<ll> p, p10, sz;
vector<ll> mul, add, dp;
vector<vector<ll>> sons;
DSU(ll n) {
sz.resize(n, 1);
p10.push_back(1);
p.resize(n);
sons.resize(n);
mul.resize(n, 1);
add.resize(n, 0);
dp.resize(n);
for (ll i = 0; i < n; i++) {
p[i] = i;
dp[i] = 0;
p10.push_back(p10.back() * 10 % MOD);
}
}
void addv(ll v, ll x) {
add[v] += x;
dp[v] += x;
}
void mulv(ll v, ll x) {
add[v] *= x;
add[v] %= MOD;
mul[v] *= x;
mul[v] %= MOD;
dp[v] *= x;
dp[v] %= MOD;
}
void push(ll v) {
for (auto i : sons[v]) {
mulv(i, mul[v]);
addv(i, add[v]);
}
mul[v] = 1;
add[v] = 0;
}
ll get(ll v) {
return (p[v] == v ? v : get(p[v]));
}
void unite(ll a, ll b, ll num) {
ll pa = get(a), pb = get(b);
if (pa == pb) {
return;
}
if (sz[pa] < sz[pb]) {
swap(pa, pb);
swap(a, b);
}
ll dpa = dp[a], dpb = dp[b];
mulv(pa, 10);
addv(pa, num);
mulv(pb, 10);
addv(pb, num);
mulv(pa, p10[sz[pb] - 1]);
addv(pa, dpb);
mulv(pb, p10[sz[pa] - 1]);
addv(pb, dpa);
push(pa);
p[pb] = pa;
sz[pa] += sz[pb];
sons[pa].push_back(pb);
}
void prec(ll v) {
push(v);
for (auto i : sons[v]) {
prec(i);
}
}
void pall() {
for (ll i = 0; i < p.size(); i++) {
if (p[i] == i) {
prec(i);
}
}
}
};
void solve() {
ll n, m;
cin >> n >> m;
DSU d(n);
for (ll i = 0; i < m; i++) {
ll a, b;
cin >> a >> b;
a--;
b--;
d.unite(a, b, i + 1);
}
d.pall();
for (auto i : d.dp) {
cout << i << '\n';
}
}
int main() {
if (IS_FILE) {
freopen("", "r", stdin);
freopen("", "w", stdout);
}
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll t = 1;
if (IS_TEST_CASES) {
cin >> t;
}
for (ll i = 0; i < t; i++) {
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 4.34783
Accepted
time: 0ms
memory: 3796kb
input:
3 2 1 2 2 3
output:
12 12 21
result:
ok 3 lines
Test #2:
score: 4.34783
Accepted
time: 0ms
memory: 3776kb
input:
5 6 1 2 3 4 2 4 2 3 2 5 1 5
output:
1325 1325 2315 2315 5132
result:
ok 5 lines
Test #3:
score: 4.34783
Accepted
time: 0ms
memory: 3796kb
input:
15 14 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15
output:
678925929 678925929 678862929 678787329 678709839 678632097 178554320 218476543 321398766 431520989 542453212 653475435 764507558 875540761 986574081
result:
ok 15 lines
Test #4:
score: 0
Wrong Answer
time: 2ms
memory: 3772kb
input:
1850 2000 535 1272 1182 1267 73 290 1339 1470 894 1137 784 1364 610 1619 800 1650 413 1524 906 1242 1262 1701 1311 1658 1317 1572 1129 1251 280 1777 1090 1189 101 250 1183 1647 494 1651 125 1327 734 806 160 454 1235 1473 594 1462 477 1653 1499 1564 101 150 532 1783 323 996 273 1660 673 1712 467 1336...
output:
1009288234 148024403 454366292 1996153054 913020965 457537985 549179882 982743531 1401412288 245361889 897086660 723174020 129813276 822500677 1122950137 1896289057 361606112 327694113 380133262 635508688 707478256 45987139 1374822983 332265399 66722634 691579427 277738877 606465626 925910136 246228...
result:
wrong answer 1st lines differ - expected: '549744152', found: '1009288234'
Test #5:
score: 0
Wrong Answer
time: 45ms
memory: 3808kb
input:
2000 400000 241 1037 978 1342 9 64 31 1222 483 665 176 581 1145 1835 1009 1936 537 1738 262 1732 392 1222 980 1718 97 1196 308 718 1631 1889 1030 1135 699 906 1023 1910 559 1724 665 1147 802 1614 1463 1557 1316 1957 947 1045 149 1609 347 732 56 1061 785 869 1250 1944 1383 1925 354 1073 831 1760 1534...
output:
559211761 825020148 1751467904 887257775 539466597 624933433 14103636 1687769580 597276002 1401841520 442585360 1623887045 962608010 942737029 688898880 901238852 159526658 305540338 511506016 595372434 928504318 956526742 166744187 477052542 529070700 999131061 878458345 394624443 896035737 4623471...
result:
wrong answer 1st lines differ - expected: '428584967', found: '559211761'
Test #6:
score: 0
Wrong Answer
time: 41ms
memory: 3800kb
input:
2000 400000 1048 1063 489 1920 501 736 126 227 180 966 888 1730 805 1772 910 1378 1228 1779 1209 1668 858 1055 1441 1667 1669 1768 1422 1838 377 609 405 725 241 1865 1591 1630 60 958 842 1905 730 1585 525 1217 542 558 223 379 111 1100 55 58 279 1227 1575 1897 1064 1141 1486 1533 118 1114 273 1802 10...
output:
653958420 165043185 240612088 373674287 1158876536 537576802 1670083476 374973323 224194371 340616914 1253954815 141604486 48133072 217604298 135678241 417375981 853928245 451454700 626585054 149595285 1452038338 1506992971 837604371 950190021 1337727590 2158612257 844441494 14257461 1179771735 1384...
result:
wrong answer 1st lines differ - expected: '641665157', found: '653958420'
Test #7:
score: 0
Wrong Answer
time: 76ms
memory: 4344kb
input:
10000 400000 778 2359 1787 3580 8076 8697 1493 4885 814 5277 6198 8246 5055 6524 2577 3582 2255 5344 3106 3900 3091 7388 342 1489 1526 1578 780 797 1508 7293 1706 5591 1164 1891 2995 8016 858 9774 671 929 2899 7410 5487 9875 3550 9116 2498 9714 129 5909 81 9810 4951 8871 2138 5523 5182 6919 7544 883...
output:
917599665 634435214 1440652516 891567458 574209592 3016538929 416518715 211386144 2025393261 497573216 944700542 659798951 35639379 680200092 715013783 1664689369 454051072 2007331159 884783611 1195314781 457976333 598679611 1262946295 1182439135 1459501868 1734129602 146774059 108889069 750535448 1...
result:
wrong answer 1st lines differ - expected: '306607485', found: '917599665'
Test #8:
score: 0
Wrong Answer
time: 70ms
memory: 4400kb
input:
10000 400000 2990 6494 3213 8324 4148 9810 2321 6780 2887 5978 7186 7772 1435 7364 3345 4004 3916 6828 9566 9643 1363 2996 3515 8342 2790 6713 5966 9814 7748 7847 5730 6344 6782 8035 6962 9136 4092 7456 1053 7773 6298 8474 1037 6022 1292 3965 3396 9610 3585 9769 7463 8127 1815 2443 100 8984 1595 373...
output:
214421162 995760340 602801629 1343668900 929545184 2004699754 2281211646 169364555 951104602 815478779 1106026177 2433962270 1447569428 896551608 660714613 482336470 594793925 702546880 1322056302 10914557 982546326 1841142273 617243776 518859826 73967561 1746794176 513744956 740271114 842915846 111...
result:
wrong answer 1st lines differ - expected: '975316062', found: '214421162'
Test #9:
score: 0
Wrong Answer
time: 76ms
memory: 4404kb
input:
10000 400000 9197 9788 102 839 1143 5723 3554 4275 3868 9539 771 6032 3553 9453 371 4184 207 5903 849 6720 1139 6924 4014 4567 4841 8626 9890 9922 2021 3345 669 7509 2799 5842 6817 8841 2893 9707 1205 4562 1890 4998 3513 3766 4296 9439 2714 5367 5833 6209 3437 8536 5262 5992 6211 9487 5293 7654 5407...
output:
713451941 1515922183 648591725 286696028 1494424167 2649939180 964652609 933575619 568389745 80294980 1128377455 1184323292 592456256 1378252671 881295262 134883180 1296667223 115691729 1777051708 1709911263 1457915019 1163712151 89539119 905720904 693140367 258386105 465805694 264881256 220369638 5...
result:
wrong answer 1st lines differ - expected: '26763223', found: '713451941'
Test #10:
score: 0
Wrong Answer
time: 70ms
memory: 4272kb
input:
10000 400000 2674 2998 5213 9617 2470 4209 1527 8263 2494 6282 1447 7812 8231 8955 4117 9882 931 7152 4191 9268 5231 5650 235 6429 1950 3881 1366 5777 9020 9644 4884 9024 3972 9852 4581 5252 1683 6740 1466 5774 2931 3731 2549 4118 6783 9068 2707 8726 4902 8947 1306 4288 2835 4072 4512 9282 592 6080 ...
output:
236285082 916414507 30929236 751450674 885083348 611394971 819323734 676579479 1458494878 1548205075 895562514 1432055314 647616521 234046727 519497637 729799534 261517301 797420570 33674546 115561915 195378774 771197682 896846766 1035212634 700238925 882399944 817972652 1236179667 957212110 1179356...
result:
wrong answer 1st lines differ - expected: '208620425', found: '236285082'
Test #11:
score: 0
Time Limit Exceeded
input:
200000 199999 7451 7452 7452 7453 7453 7454 7454 7455 7455 7456 7456 7457 7457 7458 7458 7459 7459 7460 7460 7461 7461 7462 7462 7463 7463 7464 7464 7465 7465 7466 7466 7467 7467 7468 7468 7469 7469 7470 7470 7471 7471 7472 7472 7473 7473 7474 7474 7475 7475 7476 7476 7477 7477 7478 7478 7479 7479 7...
output:
result:
Test #12:
score: 0
Time Limit Exceeded
input:
200000 199999 63667 63668 63666 63667 63665 63666 63664 63665 63663 63664 63662 63663 63661 63662 63660 63661 63659 63660 63658 63659 63657 63658 63656 63657 63655 63656 63654 63655 63653 63654 63652 63653 63651 63652 63650 63651 63649 63650 63648 63649 63647 63648 63646 63647 63645 63646 63644 6364...
output:
result:
Test #13:
score: 0
Time Limit Exceeded
input:
200000 199999 67602 67603 67603 67604 67604 67605 67605 67606 67606 67607 67607 67608 67608 67609 67609 67610 67610 67611 67611 67612 67612 67613 67613 67614 67614 67615 67615 67616 67616 67617 67617 67618 67618 67619 67619 67620 67620 67621 67621 67622 67622 67623 67623 67624 67624 67625 67625 6762...
output:
result:
Test #14:
score: 0
Time Limit Exceeded
input:
200000 199999 2337 2338 2338 2339 2339 2340 2340 2341 2341 2342 2342 2343 2343 2344 2344 2345 2345 2346 2346 2347 2347 2348 2348 2349 2349 2350 2350 2351 2351 2352 2352 2353 2353 2354 2354 2355 2355 2356 2356 2357 2357 2358 2358 2359 2359 2360 2360 2361 2361 2362 2362 2363 2363 2364 2364 2365 2365 2...
output:
result:
Test #15:
score: 0
Time Limit Exceeded
input:
200000 400000 69354 168457 53989 75309 167264 182311 66623 153345 78557 193855 39834 44704 9200 79045 43416 65994 4303 34947 8935 189925 6103 89459 101253 157016 45650 184018 35685 75748 15843 125556 19443 45770 113826 149007 44321 105930 40005 147158 29900 135638 94100 128382 100444 146374 32168 10...
output:
result:
Test #16:
score: 0
Time Limit Exceeded
input:
200000 400000 138624 188139 79804 145333 51034 64229 30009 168087 6271 37660 147448 199738 23702 134452 28418 168836 39386 69950 84025 161110 17532 18064 27783 55968 20187 168760 118383 199140 102438 157309 118681 195228 159214 169861 32061 38787 60647 116055 20433 90598 28807 92771 172240 192922 63...
output:
result:
Test #17:
score: 0
Time Limit Exceeded
input:
200000 400000 34810 153024 35972 190888 59728 185676 166424 184755 27926 163241 28534 65646 101912 147390 29823 92536 84139 146163 152112 166895 113960 168126 29948 56097 45071 130904 19325 181534 31189 104284 162661 182196 71097 74296 149370 167685 59342 70987 39270 171441 97471 148464 85624 103938...
output:
result:
Test #18:
score: 0
Time Limit Exceeded
input:
200000 400000 35062 73649 64791 143925 101462 165038 45693 153331 35409 107285 115961 145427 27783 67918 128531 145779 40834 199992 6065 6545 82539 134077 98906 185742 98690 194487 2224 50027 64160 75915 60576 191737 12703 75305 688 121173 88951 169823 54264 175492 133505 147184 4763 122735 125764 1...
output:
result:
Test #19:
score: 0
Time Limit Exceeded
input:
200000 400000 69557 165536 76893 85294 93444 103801 29994 156596 29213 189223 69458 153440 74841 146861 29704 188158 93014 94262 54121 109853 21949 175512 40057 110336 75221 140758 72007 101575 63144 143155 3684 33946 64171 154358 40445 165178 126511 193846 83335 148593 13665 189586 88155 88304 6597...
output:
result:
Test #20:
score: 0
Time Limit Exceeded
input:
200000 400000 28718 41339 54122 85143 3679 8439 18874 46011 25879 171685 121889 144440 108371 156983 28028 98211 40126 189724 42583 159032 164412 187758 63293 91419 68633 141485 89943 102221 27494 35556 51414 117816 36855 56519 117586 160276 73971 140740 48995 112286 8979 197943 123524 193900 39752 ...
output:
result:
Test #21:
score: 0
Time Limit Exceeded
input:
200000 400000 11002 138561 94075 162193 143010 159774 26390 37531 31488 105313 8964 172286 2817 77514 100811 164684 157292 161979 7253 85764 25478 92507 47628 57195 8862 184895 18776 187888 10464 133759 81742 121864 36414 156894 22325 166702 63650 76310 152860 157752 105260 153534 6695 199012 5335 1...
output:
result:
Test #22:
score: 0
Time Limit Exceeded
input:
200000 400000 84237 117430 19258 38279 44815 191998 118424 176164 15893 49383 30974 187447 35089 172696 30293 147182 51323 181825 49658 148610 84750 105002 34271 62542 43135 119118 45822 195660 84354 191883 24867 191111 154041 198116 42634 45892 16524 91048 9018 60261 50462 61258 55036 83529 82217 1...
output:
result:
Test #23:
score: 0
Time Limit Exceeded
input:
200000 400000 24562 95258 68424 125123 67323 79526 88909 98334 98895 197405 12362 62753 139962 183338 41159 87038 61475 164241 107557 112478 37443 39227 64899 192102 27380 148780 35258 55995 127415 129946 119755 157839 48585 164932 11086 131612 119792 152566 39792 197004 6593 68750 60413 183111 1122...