QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#441457 | #8531. A Graph Problem | green_gold_dog# | 13.043478 | 212ms | 25340kb | C++23 | 4.2kb | 2024-06-14 15:23:15 | 2024-06-14 15:23:15 |
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;
add[v] %= MOD;
dp[v] += x;
dp[v] %= MOD;
}
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 : p[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 % MOD << '\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: 1ms
memory: 3564kb
input:
3 2 1 2 2 3
output:
12 12 21
result:
ok 3 lines
Test #2:
score: 4.34783
Accepted
time: 0ms
memory: 3664kb
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: 3612kb
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: 1ms
memory: 3724kb
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:
300498008 44738656 846907192 971270751 986735187 975839000 553154760 435257470 586233856 636697174 207414300 835476846 661912472 270541114 817240224 108168225 417202375 626306508 683070419 284243242 873633273 70272829 774044973 66518111 586016372 995023077 36987482 499540942 357286438 837941757 3651...
result:
wrong answer 1st lines differ - expected: '549744152', found: '300498008'
Test #5:
score: 0
Wrong Answer
time: 35ms
memory: 3816kb
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:
584934141 61112672 575099293 911983567 163177196 761364487 220551953 748333000 744363780 590222409 665765485 800909842 574216114 353528852 885805412 577143099 285154295 149090302 163488143 839123170 679447920 378494677 810204407 103035994 844908975 496140625 566487411 698100821 788947662 404915668 2...
result:
wrong answer 1st lines differ - expected: '428584967', found: '584934141'
Test #6:
score: 0
Wrong Answer
time: 31ms
memory: 3832kb
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:
397349728 234866760 860935868 389305316 289663607 461574415 79714867 523030083 49743711 744515305 576111307 887928884 243215981 149881987 97151389 446935858 657409021 721013032 20397499 879050395 182822755 163604258 754220645 414410196 851706867 186420123 336003665 532283750 343070368 32866860 56237...
result:
wrong answer 1st lines differ - expected: '641665157', found: '397349728'
Test #7:
score: 0
Wrong Answer
time: 38ms
memory: 4308kb
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:
664008569 560643989 537794986 343564865 96813312 512371116 564627677 103565727 270205598 470625692 804418880 813285136 822162948 115866791 358492782 91713587 49928287 921247147 482283295 565932836 946747562 489013664 27002367 527033097 99198233 667320392 820572545 78474843 451328452 127309050 611966...
result:
wrong answer 1st lines differ - expected: '306607485', found: '664008569'
Test #8:
score: 0
Wrong Answer
time: 37ms
memory: 4308kb
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:
611441672 799149642 556015995 639026547 370127099 735631867 553678890 994997647 928542308 100666378 847144563 105950499 317282593 649331706 604432396 661208926 488698189 243406695 720891278 710875787 615355842 876407904 552187458 620689101 628388611 514734711 359864914 674622607 938963935 359846494 ...
result:
wrong answer 1st lines differ - expected: '975316062', found: '611441672'
Test #9:
score: 0
Wrong Answer
time: 29ms
memory: 4312kb
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:
191988668 394091673 913860374 232383330 891292551 508685685 524842000 494318379 359767063 383426640 97357337 97189400 314468077 633641023 354991915 740465493 721035766 853132653 236124464 656767602 891529099 781579311 950354550 43322217 174334842 761649403 796095326 712681901 948279509 507378827 349...
result:
wrong answer 1st lines differ - expected: '26763223', found: '191988668'
Test #10:
score: 0
Wrong Answer
time: 33ms
memory: 4256kb
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:
830227311 360210711 815516888 471423737 831371864 508841959 109023160 91962058 214820366 587015130 904807801 935215022 435717093 530164739 302312224 609607240 262870287 576145254 71288690 936317020 218290109 896131665 567733837 742150315 746454837 725364584 169406514 140036073 240355891 406656962 59...
result:
wrong answer 1st lines differ - expected: '208620425', found: '830227311'
Test #11:
score: 0
Wrong Answer
time: 42ms
memory: 24556kb
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:
913683359 38723808 215852005 887882895 249193503 905829710 541004991 214402902 798345299 770914311 461567744 651247712 13016007 913897818 388216444 419921051 255662700 433547509 50591129 236495291 883728724 871493706 536962981 703362803 117943964 403097667 281567659 969109903 506467881 132916067 559...
result:
wrong answer 1st lines differ - expected: '951830658', found: '913683359'
Test #12:
score: 0
Wrong Answer
time: 51ms
memory: 25340kb
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:
609757402 609757402 13422273 697820128 774327925 636450380 721774669 393883175 401116509 989506970 530777600 66812694 882271888 473668247 807457805 851966628 401195369 4260902 163046598 192437957 480393249 111355266 798332997 53083792 630829054 807495474 900716181 721258532 498099669 588927349 92298...
result:
wrong answer 1st lines differ - expected: '835339339', found: '609757402'
Test #13:
score: 0
Wrong Answer
time: 41ms
memory: 24832kb
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:
448367046 342165029 795845694 123173034 935166234 75808126 322839139 832782049 962051534 186663050 385457553 533707926 252777685 442648192 966594695 91986591 838687188 867021294 397156712 799967043 476143958 352161967 888342924 643673483 765701856 306725707 557878061 112052164 713811549 965101037 44...
result:
wrong answer 1st lines differ - expected: '810957719', found: '448367046'
Test #14:
score: 0
Wrong Answer
time: 46ms
memory: 24608kb
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:
343455642 343455642 747120520 431518368 508026165 370148620 455472909 127581415 134814749 723205210 264475840 800510941 615970128 207366487 541156045 585664868 134893609 737959149 896744845 926136204 214091489 845053513 532031237 786782039 364527294 541193714 634414421 454956772 231797909 322625589 ...
result:
wrong answer 1st lines differ - expected: '980868389', found: '343455642'
Test #15:
score: 0
Wrong Answer
time: 178ms
memory: 24064kb
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:
790240430 426039757 77514390 547908783 956739313 621400648 88341821 295873719 603223300 184671864 32709909 943268628 775412294 477413756 224588868 929149460 820710125 530243453 893620334 269347529 298740795 529017223 858401243 340581712 220527582 710638023 677809381 830678724 873144586 615876175 496...
result:
wrong answer 1st lines differ - expected: '980942741', found: '790240430'
Test #16:
score: 0
Wrong Answer
time: 165ms
memory: 24200kb
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:
171891117 417937056 540564036 90209682 22494590 500564374 540756395 485619609 345042338 789931686 124479283 110707807 790723612 256963584 761048458 392777109 460865972 738905679 649888717 745857290 844114421 261014094 741395065 421851522 645275570 239877379 186808677 992704615 736026505 975707091 79...
result:
wrong answer 1st lines differ - expected: '127421299', found: '171891117'
Test #17:
score: 0
Wrong Answer
time: 174ms
memory: 24092kb
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:
826191341 23334122 514512692 223160260 773860821 921821528 990493329 486793957 329787046 267093948 619987050 124737727 7074172 426947822 521896883 187224535 261513481 461232903 673343319 325481582 686834003 342199532 581987616 918382024 760934389 175898269 293693477 638551826 828531445 204452116 389...
result:
wrong answer 1st lines differ - expected: '136433763', found: '826191341'
Test #18:
score: 0
Wrong Answer
time: 180ms
memory: 24056kb
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:
750888379 484088247 232081665 5699121 927844103 322994245 122110921 715774791 192846454 935247003 957117206 847539372 689868371 755491816 867294616 676277195 587769069 856917965 576564599 686863446 546088676 855174911 89698067 966661323 671414774 86709442 616216955 55358099 333420296 187881634 94697...
result:
wrong answer 1st lines differ - expected: '274235651', found: '750888379'
Test #19:
score: 0
Wrong Answer
time: 212ms
memory: 24028kb
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:
908002190 864716061 989948435 177123311 489853122 907753924 436126778 446198399 755374250 377583600 706947721 549362198 709395882 630378209 871439328 893214398 544227585 817529133 987526909 72094227 197516771 748103677 398216457 656198369 471581881 393800636 474606356 960133434 791908018 470921488 2...
result:
wrong answer 1st lines differ - expected: '910178652', found: '908002190'
Test #20:
score: 0
Wrong Answer
time: 171ms
memory: 24064kb
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:
989514957 995256113 353717944 843136346 139280051 191153150 925108892 566570680 102502694 392695156 356394274 855306629 509237141 462346874 5751015 50100185 78040516 501972767 905572042 563458247 961453990 161946137 650998476 414431423 815637807 747220740 264923267 211854248 645808068 639787776 7101...
result:
wrong answer 1st lines differ - expected: '548609526', found: '989514957'
Test #21:
score: 0
Wrong Answer
time: 182ms
memory: 24040kb
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:
266571357 824677005 525457690 324430531 951284257 603037341 706241466 83893951 512904994 878364711 387914879 719312083 802315030 565563146 321972463 829493808 417907219 671929827 879119813 189430876 61324577 742205854 260509838 810659518 221565879 263974461 120829171 231535635 632868212 984422619 76...
result:
wrong answer 1st lines differ - expected: '183101945', found: '266571357'
Test #22:
score: 0
Wrong Answer
time: 157ms
memory: 24040kb
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:
502888358 432772197 737200006 649821261 841500810 238645697 390866156 431937176 983151620 358441904 92090608 22791438 146914189 254296414 651729503 809668133 684532848 549586892 541061202 194811250 406113492 266234319 529798453 72054359 410481935 29940287 837637459 242513227 949247091 875675448 5582...
result:
wrong answer 1st lines differ - expected: '260219076', found: '502888358'
Test #23:
score: 0
Wrong Answer
time: 181ms
memory: 24012kb
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...
output:
867180202 386313492 780759269 802378288 507820588 89541789 693393791 669648205 931450023 621903115 678673940 897049049 242519961 775784342 94434641 384683803 225016589 709615000 980131094 383829076 587890350 991652159 196487951 54761780 112988234 609899274 605705326 217168190 878149942 52214996 3150...
result:
wrong answer 1st lines differ - expected: '452226695', found: '867180202'