QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#569906#6441. Ancient Magic Circle in TeyvatJWRuixiTL 1529ms26604kbC++203.1kb2024-09-17 12:05:532024-09-17 12:05:53

Judging History

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

  • [2024-09-17 12:05:53]
  • 评测
  • 测评结果:TL
  • 用时:1529ms
  • 内存:26604kb
  • [2024-09-17 12:05:53]
  • 提交

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...

output:


result: