QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#449596#4898. 基础图论练习题wly094 112ms58124kbC++141.8kb2024-06-21 15:14:062024-06-21 15:14:07

Judging History

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

  • [2024-06-21 15:14:07]
  • 评测
  • 测评结果:4
  • 用时:112ms
  • 内存:58124kb
  • [2024-06-21 15:14:06]
  • 提交

answer

#include <algorithm>
#include <bitset>
#include <cstdint>
#include <iostream>
#include <numeric>
#include <vector>
#include <utility>
using namespace std;

const int N = 2e5 + 8;
const int p = 998244353;
int64_t n, m, q;
vector<pair<int64_t, int64_t> > gg[N];
vector<pair<int64_t, pair<int64_t, int64_t> > > vec;

int fa[N], siz[N];
inline void init(int n) {
  iota(fa, fa + n + 1, 0), fill(siz, siz + n + 1, 1);
}
int ask(int x) {
  return fa[x] == x? x: fa[x] = ask(fa[x]);
}
void merge(int x, int y) {
  int a = ask(x), b = ask(y);
  if (a == b) return ;
  if (siz[a] > siz[b]) swap(a, b);
  fa[a] = b;
  siz[b] += siz[a];
}

bitset<N> vis;
void dfs(int x) {
  if (vis[x]) return ;
  vis[x] = true;
  for (auto p: gg[x])
    dfs(p.first);
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  cin >> n >> m >> q;
  for (int i = 0; i < m; ++i) {
    int64_t d, x;
    cin >> d >> x;
    for (int j = 0; j + d < n; ++j) {
      vec.push_back(make_pair(x, make_pair(j, j + d)));
      gg[j].push_back(make_pair(j + d, x));
      gg[j + d].push_back(make_pair(j, x));
    }
  }
  for (int i = 0; i < q; ++i) {
    int64_t u, v, w;
    cin >> u >> v >> w;
    vec.push_back(make_pair(w, make_pair(u, v)));
    gg[u].push_back(make_pair(v, w));
    gg[v].push_back(make_pair(u, w));
  }
  int64_t kk = 0;
  for (int i = 0; i < n; ++i) {
    if (!vis[i]) ++kk;
    dfs(i);
  }
  clog << kk << endl;
  sort(vec.begin(), vec.end());
  kk = n - kk;
  int64_t tt = 0, sum = 0;
  init(n);
  for (auto e: vec) {
    if (ask(e.second.first) == ask(e.second.second)) continue;
    merge(e.second.first, e.second.second);
    sum += e.first;
    if (sum >= p) sum -= p;
    ++tt;
    if (tt == kk) break;
  }
  cout << sum << '\n';
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 4
Accepted

Test #1:

score: 4
Accepted
time: 59ms
memory: 34076kb

input:

161199 9 46510
147335 540442844
159493 801351455
149342 821625305
128476 843250712
95524 275754315
139315 106523502
93575 680460786
155498 328812257
146020 410466645
79992 141967 50596784
152210 68644 268349216
72549 96959 42994091
93869 27394 945120577
2909 81886 270684270
12735 35026 871917997
974...

output:

359714743

result:

ok 1 number(s): "359714743"

Test #2:

score: 0
Accepted
time: 112ms
memory: 58124kb

input:

168549 9 49402
160577 34610415
114623 670751010
74448 676966248
53782 845469137
130729 375561046
31610 261496571
134601 154875802
136129 905308676
166248 499420220
69637 72676 875637640
160442 125460 1269794
146261 61770 714794725
137610 1291 490170432
162092 81850 488118013
106400 48193 276190368
4...

output:

520439176

result:

ok 1 number(s): "520439176"

Test #3:

score: 0
Accepted
time: 92ms
memory: 48532kb

input:

127164 9 45109
56483 490066497
70966 229077054
87305 993081887
72423 442762798
80262 200507011
101712 162752728
67532 590730535
44956 565466274
124237 429166816
13030 8906 742024040
97259 101468 187678659
13401 4301 143856524
125750 80473 258719294
106155 10339 592121345
120034 92354 50915550
112430...

output:

211463174

result:

ok 1 number(s): "211463174"

Test #4:

score: 0
Accepted
time: 74ms
memory: 41144kb

input:

158784 9 48415
138305 177767002
147417 50196642
85527 776201932
144377 990389932
118355 310906417
145220 218744495
145002 132736644
51947 834751363
139733 839880491
158443 157692 159261414
111518 14927 747973081
37498 66196 69874791
11597 115114 22394413
16704 133459 109302190
112143 46551 813021872...

output:

151875883

result:

ok 1 number(s): "151875883"

Test #5:

score: 0
Accepted
time: 21ms
memory: 12804kb

input:

111371 0 45933
13298 59545 852258097
94111 54245 459369673
40744 23311 644404848
37039 92443 220984611
17374 43165 421794343
57652 57965 470479953
62977 14481 563172671
102144 3471 36594913
46628 43278 11508424
55965 80136 777230453
56962 35374 349098036
34825 27995 339605509
43021 17657 780921827
5...

output:

92500087

result:

ok 1 number(s): "92500087"

Subtask #2:

score: 0
Time Limit Exceeded

Dependency #1:

100%
Accepted

Test #6:

score: 0
Time Limit Exceeded

input:

191116 49595 45279
87483 815631830
153579 433065789
167569 346797140
98560 154881536
170720 13622837
133236 561208103
155537 421316363
140536 514298139
6005 986290017
154400 85233907
166826 351094521
174419 304435906
173900 61174962
112778 693574534
104503 745038995
134920 31228457
117606 662581798
...

output:


result:


Subtask #3:

score: 0
Runtime Error

Test #11:

score: 0
Runtime Error

input:

569435269457904707 2 0
490445920091092693 772271583
144842828305643603 609043885

output:


result:


Subtask #4:

score: 0
Skipped

Dependency #3:

0%

Subtask #5:

score: 0
Runtime Error

Test #31:

score: 0
Runtime Error

input:

755526150476311190 942 0
492334667739348527 1
755523898623296976 1
532486636690994793 1
755526150476030559 1
755526150476249097 1
502164090270592200 1
657422656495814703 1
487200614853438190 1
311037325561173142 1
755526150475651155 1
125287404340238660 1
755524914808674090 1
755526150476177007 1
75...

output:


result:


Subtask #6:

score: 0
Skipped

Dependency #3:

0%

Subtask #7:

score: 0
Skipped

Dependency #3:

0%

Subtask #8:

score: 0
Skipped

Dependency #5:

0%

Subtask #9:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%