QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#569906 | #6441. Ancient Magic Circle in Teyvat | JWRuixi | TL | 1529ms | 26604kb | C++20 | 3.1kb | 2024-09-17 12:05:53 | 2024-09-17 12:05:53 |
Judging History
answer
#ifdef LOCAL
#include "stdafx.h"
#else
#include <bits/stdc++.h>
#define IL inline
#define LL long long
#define eb emplace_back
#define sz(v) ((int) (v).size())
#define L(i, j, k) for (int i = (j); i <= (k); ++i)
#define R(i, j, k) for (int i = (j); i >= (k); --i)
#define FIO(FILE) freopen(FILE".in", "r", stdin), freopen(FILE".out", "w", stdout)
using namespace std;
using vi = vector<int>;
#endif
using i128 = __int128;
using pi = pair<int, int>;
using ull = unsigned long long;
IL ostream& operator << (ostream &os, i128 x) {
static char s[64], *t = s;
if (x < 0) {
// os.put('-');
x = ~(x - 1);
}
do {
*t++ = x % 10 | 48;
x /= 10;
} while (x);
while (t != s) {
os.put(*--t);
}
return os;
}
struct pair_hash {
ull operator () (const pi &o) const {
return (ull(o.first) << 32) | o.second;
}
};
constexpr int N = 1e5 + 9;
constexpr int M = 2e5 + 9;
int n, m, p[N], q[N], d[N];
vi g[N], G[N];
unordered_map<pair<int, int>, int, pair_hash> id;
int cv[N], ce[M], c[N];
LL c3, c4;
IL i128 C (int n, int m) {
i128 ret = 1;
L (i, n - m + 1, n) {
ret *= i;
}
L (i, 1, m) {
ret /= i;
}
return ret;
}
int main () {
ios::sync_with_stdio(0), cin.tie(0);
cin >> n >> m;
L (i, 1, m) {
int u, v;
cin >> u >> v;
id[pi(u, v)] = id[pi(v, u)] = i;
g[u].eb(v);
g[v].eb(u);
}
L (i, 1, n) {
p[i] = i, d[i] = sz(g[i]);
}
sort(p + 1, p + n + 1, [] (int x, int y) {
return d[x] > d[y];
});
L (i, 1, n) {
q[p[i]] = i;
}
L (u, 1, n) {
for (int v : g[u]) {
if (q[v] > q[u]) {
G[u].eb(v);
}
}
}
L (i, 1, n) {
int u = p[i];
for (int v : G[u]) {
c[v] = 1;
}
for (int v : G[u]) {
for (int w : G[v]) {
if (c[w]) {
// cout << u << ' ' << v << ' ' << w << '\n';
c3 += 1;
cv[u] += 1;
cv[v] += 1;
cv[w] += 1;
ce[id[pi(u, v)]] += 1;
ce[id[pi(v, w)]] += 1;
ce[id[pi(w, u)]] += 1;
}
}
}
for (int v : G[u]) {
c[v] = 0;
}
}
L (i, 1, n) {
int u = p[i];
for (int v : G[u]) {
for (int w : g[v]) {
if (q[w] > i) {
c4 += c[w]++;
}
}
}
for (int v : G[u]) {
for (int w : g[v]) {
c[w] = 0;
}
}
// cout << c4 << '\n';
}
// cout << c3 << ' ' << c4 << '\n';
i128 f0 = C(n, 4);
i128 f1 = m * C(n - 2, 2);
i128 f2 = C(m, 2);
L (i, 1, n) {
f2 += (n - 4) * C(d[i], 2);
}
i128 f3 = i128(n - 6) * c3;
L (i, 1, n) {
f3 += C(d[i], 3);
}
L (u, 1, n) {
for (int v : G[u]) {
f3 += i128(d[u] - 1) * (d[v] - 1);
}
}
i128 f4 = c4;
L (i, 1, n) {
f4 += i128(d[i] - 2) * cv[i];
}
i128 f5 = 0;
L (i, 1, m) {
f5 += C(ce[i], 2);
}
// cout << f0 << ' ' << f1 << ' ' << f2 << ' ' << f3 << ' ' << f4 << ' ' << f5 << '\n';
cout << f0 - f1 + f2 - f3 + f4 - f5 << '\n';
}
// I love WHQ!
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3624kb
input:
7 6 1 2 1 3 1 4 2 3 2 4 3 4
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 1ms
memory: 3532kb
input:
4 0
output:
1
result:
ok 1 number(s): "1"
Test #3:
score: 0
Accepted
time: 1ms
memory: 5844kb
input:
4 1 1 2
output:
0
result:
ok 1 number(s): "0"
Test #4:
score: 0
Accepted
time: 1ms
memory: 7680kb
input:
4 2 1 2 1 3
output:
0
result:
ok 1 number(s): "0"
Test #5:
score: 0
Accepted
time: 1ms
memory: 7956kb
input:
4 2 1 2 3 4
output:
0
result:
ok 1 number(s): "0"
Test #6:
score: 0
Accepted
time: 1ms
memory: 5632kb
input:
4 3 1 2 1 3 1 4
output:
0
result:
ok 1 number(s): "0"
Test #7:
score: 0
Accepted
time: 1ms
memory: 7636kb
input:
4 3 1 2 2 3 3 4
output:
0
result:
ok 1 number(s): "0"
Test #8:
score: 0
Accepted
time: 1ms
memory: 7732kb
input:
4 3 1 2 2 3 1 3
output:
0
result:
ok 1 number(s): "0"
Test #9:
score: 0
Accepted
time: 1ms
memory: 3764kb
input:
4 4 1 2 2 3 1 3 1 4
output:
0
result:
ok 1 number(s): "0"
Test #10:
score: 0
Accepted
time: 1ms
memory: 3592kb
input:
4 4 1 2 2 3 3 4 1 4
output:
0
result:
ok 1 number(s): "0"
Test #11:
score: 0
Accepted
time: 1ms
memory: 7680kb
input:
4 5 1 2 1 3 1 4 2 3 3 4
output:
0
result:
ok 1 number(s): "0"
Test #12:
score: 0
Accepted
time: 1ms
memory: 5708kb
input:
4 6 1 2 1 3 1 4 2 3 2 4 3 4
output:
1
result:
ok 1 number(s): "1"
Test #13:
score: 0
Accepted
time: 0ms
memory: 7664kb
input:
633 0
output:
6626427570
result:
ok 1 number(s): "6626427570"
Test #14:
score: 0
Accepted
time: 0ms
memory: 8000kb
input:
633 100 284 424 27 560 19 484 92 558 59 385 440 577 11 420 341 543 285 330 430 569 88 259 13 499 444 557 418 483 167 220 185 497 175 489 246 400 387 577 125 303 99 336 152 437 116 324 229 472 200 338 46 197 368 399 345 386 92 439 121 132 50 310 444 525 454 631 174 337 276 337 476 597 405 557 99 263 ...
output:
6606576764
result:
ok 1 number(s): "6606576764"
Test #15:
score: 0
Accepted
time: 1ms
memory: 5912kb
input:
633 200 147 540 247 463 502 553 168 519 24 395 126 170 417 437 77 94 453 466 104 400 32 145 231 496 199 360 391 597 492 599 526 627 384 481 219 238 115 508 74 112 239 243 96 480 31 164 119 467 96 578 275 574 66 364 80 409 18 527 97 462 552 570 7 350 344 473 221 621 174 613 167 181 61 474 45 320 64 4...
output:
6586769859
result:
ok 1 number(s): "6586769859"
Test #16:
score: 0
Accepted
time: 1ms
memory: 5736kb
input:
633 500 193 462 116 450 462 486 197 295 471 593 189 220 484 576 143 415 256 588 132 543 46 363 18 184 105 395 243 529 36 188 83 588 127 339 184 415 182 193 123 341 176 427 446 484 143 525 76 473 161 519 126 386 234 418 119 181 28 94 543 569 333 448 206 588 103 563 499 536 131 263 614 632 478 489 284...
output:
6527638886
result:
ok 1 number(s): "6527638886"
Test #17:
score: 0
Accepted
time: 1ms
memory: 5796kb
input:
633 1000 213 614 307 555 146 543 262 297 35 351 99 562 92 222 270 390 102 483 591 597 358 543 40 129 157 466 134 438 288 456 49 535 250 316 24 536 93 585 341 550 66 110 185 330 146 434 131 496 68 413 414 625 4 96 19 460 5 444 35 589 118 245 30 387 249 325 65 390 177 572 216 499 309 608 155 486 509 6...
output:
6430135035
result:
ok 1 number(s): "6430135035"
Test #18:
score: 0
Accepted
time: 1ms
memory: 3960kb
input:
633 2000 37 314 132 319 127 409 37 579 573 594 107 149 144 337 108 618 259 515 6 596 145 201 152 263 488 512 290 294 542 578 157 311 577 590 517 536 529 539 61 260 100 374 224 626 479 564 36 548 46 242 190 592 27 88 30 181 125 351 17 604 214 428 255 388 90 201 126 430 109 384 238 534 191 197 160 502...
output:
6238668674
result:
ok 1 number(s): "6238668674"
Test #19:
score: 0
Accepted
time: 4ms
memory: 8348kb
input:
633 5000 151 587 351 429 271 387 271 398 213 560 167 483 531 596 79 260 532 571 167 179 158 623 26 194 450 515 346 583 30 217 316 551 27 234 208 449 272 397 50 318 105 229 458 526 145 301 17 306 114 159 163 177 169 608 61 211 204 477 43 311 109 509 535 539 78 588 177 280 64 142 305 593 418 444 453 5...
output:
5692706944
result:
ok 1 number(s): "5692706944"
Test #20:
score: 0
Accepted
time: 5ms
memory: 4824kb
input:
633 10000 44 377 191 460 198 226 32 599 312 406 414 564 52 508 203 319 319 376 428 629 99 589 53 228 586 590 21 443 12 155 25 400 147 369 27 374 394 489 118 548 70 397 242 278 245 257 509 522 82 372 39 233 182 264 246 588 511 570 349 418 168 339 137 615 419 420 66 461 182 462 260 538 4 604 99 494 15...
output:
4870867167
result:
ok 1 number(s): "4870867167"
Test #21:
score: 0
Accepted
time: 15ms
memory: 7856kb
input:
633 20000 25 130 270 612 2 361 228 277 106 138 45 207 12 291 36 450 336 589 293 586 7 331 13 94 182 244 21 293 109 446 142 406 311 439 68 423 372 383 172 453 283 311 196 438 249 400 391 562 232 538 539 553 357 607 24 257 171 336 422 430 472 576 47 501 531 574 72 237 14 428 56 163 386 592 220 627 62 ...
output:
3521002107
result:
ok 1 number(s): "3521002107"
Test #22:
score: 0
Accepted
time: 86ms
memory: 12328kb
input:
633 50000 5 605 325 341 407 507 349 401 369 461 70 297 228 518 241 244 58 563 59 459 153 480 101 606 13 140 312 336 396 456 307 607 94 413 129 340 21 456 153 452 419 575 322 411 313 617 160 310 426 430 444 594 214 335 33 175 32 41 257 540 424 462 39 582 181 190 62 238 50 262 181 269 22 289 251 331 6...
output:
1177969809
result:
ok 1 number(s): "1177969809"
Test #23:
score: 0
Accepted
time: 286ms
memory: 17752kb
input:
633 80000 234 361 181 425 481 538 145 313 188 308 69 423 250 607 192 320 472 626 119 219 361 612 186 191 52 144 28 320 238 472 206 439 318 445 252 341 10 517 376 442 209 213 82 181 69 458 224 487 494 624 207 395 183 621 487 599 166 213 245 490 45 292 131 592 175 544 2 464 62 468 7 332 336 420 277 56...
output:
282030903
result:
ok 1 number(s): "282030903"
Test #24:
score: 0
Accepted
time: 350ms
memory: 16604kb
input:
633 90000 271 596 308 446 104 300 269 632 434 537 101 609 47 239 32 565 232 468 171 477 128 575 206 352 459 563 8 252 203 546 135 549 23 389 252 261 17 215 23 581 130 429 332 577 461 536 429 520 415 540 250 577 51 583 475 625 299 592 208 372 47 442 170 425 183 187 184 512 103 277 463 540 32 310 169 ...
output:
128519898
result:
ok 1 number(s): "128519898"
Test #25:
score: 0
Accepted
time: 480ms
memory: 21620kb
input:
633 100000 100 486 30 184 85 561 22 569 22 517 89 461 61 369 178 324 178 255 281 414 295 553 492 506 14 351 63 202 44 222 64 86 64 598 7 28 191 343 592 620 303 502 46 427 383 614 593 632 278 479 35 631 264 373 95 561 215 279 290 370 201 206 179 533 322 602 138 149 373 569 7 302 163 566 93 276 374 47...
output:
38486
result:
ok 1 number(s): "38486"
Test #26:
score: 0
Accepted
time: 602ms
memory: 22656kb
input:
633 110000 22 203 608 632 35 555 42 237 264 608 157 266 206 578 92 568 18 93 245 427 601 618 10 443 137 214 121 243 342 601 46 344 112 132 35 427 252 313 11 547 394 565 389 391 161 246 352 417 224 525 122 201 508 561 488 628 82 218 99 136 70 250 271 321 69 337 560 588 166 579 92 554 68 583 169 414 9...
output:
128079474
result:
ok 1 number(s): "128079474"
Test #27:
score: 0
Accepted
time: 749ms
memory: 21652kb
input:
633 120000 185 542 7 14 27 592 224 569 98 352 448 543 105 123 134 210 91 413 93 393 29 132 283 501 190 275 380 603 103 557 449 489 44 623 2 551 43 573 547 579 52 354 97 378 309 502 147 405 57 375 98 488 195 522 3 6 224 411 163 577 213 368 197 260 140 341 13 578 19 510 155 603 447 501 93 476 250 340 ...
output:
281577985
result:
ok 1 number(s): "281577985"
Test #28:
score: 0
Accepted
time: 1529ms
memory: 26604kb
input:
633 150000 592 604 140 354 185 631 165 483 349 356 539 609 113 115 240 398 426 576 53 200 353 378 416 534 228 427 117 327 140 410 66 324 180 432 442 568 175 546 50 145 171 528 81 447 47 327 258 377 225 568 475 489 136 449 29 548 568 630 238 321 278 468 526 629 81 123 324 372 310 339 298 523 446 489 ...
output:
1176277456
result:
ok 1 number(s): "1176277456"
Test #29:
score: -100
Time Limit Exceeded
input:
633 180000 387 421 280 528 273 412 212 561 1 582 219 457 190 503 464 605 56 625 223 240 87 146 178 335 456 624 311 353 108 273 349 601 384 544 91 240 172 549 21 58 439 479 62 157 102 428 374 575 469 473 173 181 97 448 209 225 132 440 116 591 348 412 40 225 440 507 155 611 7 361 211 550 105 369 469 6...