QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#293757#4357. School Roadwxhtzdy15 210ms53636kbC++202.0kb2023-12-29 18:18:052023-12-29 18:18:05

Judging History

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

  • [2023-12-29 18:18:05]
  • 评测
  • 测评结果:15
  • 用时:210ms
  • 内存:53636kb
  • [2023-12-29 18:18:05]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  vector<vector<pair<int, int>>> g(n);
  for (int i = 0; i < m; i++) {
    int x, y, z;
    cin >> x >> y >> z;
    --x; --y;
    g[x].push_back({y, z});
    g[y].push_back({x, z});
  }
  for (int i = 0; i < n; i++) {
    sort(g[i].begin(), g[i].end(), [&](pair<int, int> a, pair<int, int> b) {
      return a.second > b.second;
    });
    vector<bool> was(n);
    vector<pair<int, int>> new_g;
    for (auto& p : g[i]) {
      if (!was[p.first]) {
        new_g.push_back(p);
        was[p.first] = true;
      }
    }
    g[i] = new_g;
  }
  long long L;
  const long long inf = (long long) 1e18;
  {
    vector<long long> dist(n, inf);
    dist[0] = 0;
    set<pair<long long, int>> st;
    st.emplace(0LL, 0);
    while (!st.empty()) {
      auto it = st.begin();
      int i = it->second;
      st.erase(it);
      for (auto& p : g[i]) {
        int to = p.first;
        int w = p.second;
        if (dist[to] > dist[i] + w) {
          if (dist[to] != inf) {
            st.erase({dist[to], to});
          }
          dist[to] = dist[i] + w;
          st.emplace(dist[to], to);
        }
      }
    }
    L = dist[n - 1];
  }
  vector<vector<long long>> dp(1 << n, vector<long long>(n, -inf));
  dp[1 << 0][0] = 0;
  for (int mask = 0; mask < (1 << n); mask++) {
    for (int i = 0; i < n; i++) {
      if (!(mask >> i & 1)) {
        continue;
      }
      for (auto& p : g[i]) {
        int to = p.first;
        int w = p.second;
        if (mask >> to & 1) {
          continue;
        }
        dp[mask ^ (1 << to)][to] = max(dp[mask ^ (1 << to)][to], dp[mask][i] + w);        
      }
    }
  }
  long long mx = -inf;
  for (int mask = 0; mask < (1 << n); mask++) {
    if (mask >> (n - 1) & 1) {
      mx = max(mx, dp[mask][n - 1]);
    }
  }
  cout << (mx > L ? 1 : 0) << '\n';
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 7
Accepted
time: 3ms
memory: 5504kb

input:

14 40
8 12 570429827
6 10 592780730
13 14 299807355
4 10 729771483
4 10 729771483
6 9 746405411
2 3 696576351
12 14 192640790
4 13 284900209
1 2 857968292
12 14 192640790
8 12 570429827
6 10 592780730
6 9 746405411
9 11 329648726
4 13 284900209
2 3 696576351
4 10 729771483
5 11 101819611
3 7 1824073...

output:

0

result:

ok single line: '0'

Test #2:

score: -7
Runtime Error

input:

41 40
12 19 102666211
30 32 10931929
8 34 88862177
11 29 37284876
6 35 24117284
6 11 24483138
10 35 11019124
4 22 509961847
20 39 77098829
25 33 563195350
22 24 781289886
2 17 238185039
21 27 288940653
3 31 62767763
18 21 350694322
2 40 228181439
3 33 109276182
31 36 203571934
28 34 64098677
14 24 3...

output:


result:


Subtask #2:

score: 15
Accepted

Test #11:

score: 15
Accepted
time: 50ms
memory: 50300kb

input:

18 40
3 10 26965732
5 15 67047331
3 17 42474964
13 15 129212204
9 18 142540287
2 14 27157962
5 15 67047331
5 15 67047331
5 15 67047331
4 16 212978971
6 12 51548223
4 18 192438222
13 16 60052417
16 17 162364835
6 17 55527270
9 11 58810843
3 7 95393586
13 15 129212204
2 17 67824762
5 15 67047331
15 16...

output:

0

result:

ok single line: '0'

Test #12:

score: 0
Accepted
time: 43ms
memory: 50284kb

input:

18 51
5 16 489370441
7 8 674383722
8 11 602435525
1 10 856666364
13 18 650829027
11 14 198398173
3 4 613940394
15 17 123758204
8 11 602435525
3 6 567757815
13 18 650829027
14 15 236674174
3 4 613940394
5 18 956980171
6 16 887883755
3 6 567757815
6 16 887883755
5 18 956980171
4 10 339471731
11 14 198...

output:

0

result:

ok single line: '0'

Test #13:

score: 0
Accepted
time: 76ms
memory: 53536kb

input:

18 200000
8 17 279042056
12 13 907447344
2 16 240997679
3 7 820773384
1 5 45712022
2 16 240997679
4 18 239293113
9 14 389857788
4 18 239293113
4 18 239293113
1 11 409366186
3 12 208134361
2 16 240997679
13 17 263089947
1 5 45712022
4 18 239293113
4 7 528521172
2 9 629050323
8 17 279042056
12 13 9074...

output:

0

result:

ok single line: '0'

Test #14:

score: 0
Accepted
time: 81ms
memory: 53536kb

input:

18 200000
12 14 787958557
3 17 309856381
7 16 602540874
6 12 343810291
12 14 561222017
7 16 125534085
9 17 870511470
7 16 118408057
10 15 452922275
6 12 983055551
3 17 599421596
9 17 344601220
10 15 627856971
6 12 821612223
9 13 652746776
2 3 86605360
14 16 845498029
4 5 531236117
6 12 308924509
5 1...

output:

0

result:

ok single line: '0'

Test #15:

score: 0
Accepted
time: 87ms
memory: 53524kb

input:

18 199999
6 16 312811855
5 10 658600889
8 13 23117786
2 11 838354308
2 16 681349134
9 17 650741046
3 12 902316677
8 13 557626383
7 13 747622028
14 15 246861375
5 10 779694159
11 15 507769124
7 13 310445554
7 13 668124445
5 10 558567743
3 17 535103743
5 10 122705300
4 6 559392043
14 15 427912040
8 13...

output:

0

result:

ok single line: '0'

Test #16:

score: 0
Accepted
time: 90ms
memory: 53424kb

input:

18 200000
8 16 273673687
9 11 360275441
4 6 922867054
4 14 84928274
6 13 968233426
2 12 812572590
11 15 71503040
4 6 980374167
9 11 223188493
8 16 115328427
10 13 361608292
6 13 37132062
10 13 545962114
9 11 390680169
3 14 698353284
7 10 584994105
8 16 55684470
8 16 284428277
6 13 124379775
2 5 2317...

output:

1

result:

ok single line: '1'

Test #17:

score: 0
Accepted
time: 89ms
memory: 53568kb

input:

18 199999
6 17 135245648
9 15 341808833
12 16 429871018
4 11 210164245
7 8 123528971
11 13 31475798
2 5 483934476
2 3 23993125
11 13 620746207
14 15 930880409
2 5 351648059
9 15 472093860
12 16 465801854
14 17 211091034
14 15 736456699
4 11 420330475
14 15 60082916
6 12 376705880
12 16 882106737
14 ...

output:

1

result:

ok single line: '1'

Subtask #3:

score: 0
Runtime Error

Test #18:

score: 0
Runtime Error

input:

100000 99999
42115 93495 19881095
21969 68351 161710
7405 86343 27129
37307 45676 320013
30388 71545 117761
22026 68957 65332
77949 81644 2281387
24865 95079 341488
9849 98496 2548159
53911 79572 4962105
24880 62622 1678564
15943 22168 1524688
67424 78323 2450655
32175 74893 1908332
35640 39305 1043...

output:


result:


Subtask #4:

score: 0
Runtime Error

Test #57:

score: 35
Accepted
time: 55ms
memory: 50304kb

input:

18 400
11 18 145314505
1 18 242896789
1 18 242896789
5 13 31030812
13 18 93451080
1 18 242896789
1 7 123378068
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 18 242896789
1 3 42183985
1 18 242896789
13 18 93451080
1 18 242896789
13 18 93451080
1 18 242896789
1 18 242896...

output:

0

result:

ok single line: '0'

Test #58:

score: 0
Accepted
time: 77ms
memory: 53260kb

input:

18 200000
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 758096510
1 18 ...

output:

0

result:

ok single line: '0'

Test #59:

score: 0
Accepted
time: 76ms
memory: 53400kb

input:

18 200000
1 16 142470606
1 16 142470606
1 16 142470606
1 16 142470606
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 16 142470606
1 16 142470606
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 18 403405575
1 16 142470606
1 18 403405575
1 16 142470606
16 18...

output:

1

result:

ok single line: '1'

Test #60:

score: 0
Accepted
time: 210ms
memory: 53636kb

input:

18 200000
4 9 299686894
3 5 299686894
7 8 299686894
1 16 299686894
3 17 299686894
6 9 299686894
12 15 299686894
4 14 299686894
2 5 299686894
15 16 299686894
4 9 299686894
5 17 299686894
3 5 299686894
1 12 299686894
9 13 299686894
6 16 299686894
3 4 299686894
12 17 299686894
6 11 299686894
6 16 29968...

output:

1

result:

ok single line: '1'

Test #61:

score: -35
Runtime Error

input:

100000 100013
58740 94702 183108
37735 80452 620754
37294 78858 10966952
37514 85983 339130
12698 97268 45544120
69733 89994 8521209
75252 91512 12575878
277 80124 76073
17061 55209 7457230
36796 62730 7849522
45347 80689 1830312
35585 68837 368255
36459 46047 4254924
70264 73565 812524
37921 93786 ...

output:


result:


Subtask #5:

score: 0
Skipped

Dependency #1:

0%