QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#689551#6606. The Boomsday Projectbright_mlWA 917ms605956kbC++201.8kb2024-10-30 17:42:032024-10-30 17:42:04

Judging History

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

  • [2024-10-30 17:42:04]
  • 评测
  • 测评结果:WA
  • 用时:917ms
  • 内存:605956kb
  • [2024-10-30 17:42:03]
  • 提交

answer

//
// Created by 35395 on 2024/10/30.
//
#include<bits/stdc++.h>

using namespace std;
using i64 = long long;
const int N = 510;
const int M = 100010;
array<int, 3> a[N];
pair<int, int> d[M];
#define PII pair<int,int>
#define fi first
#define se second
int b[3 * M];
int nxt[3 * M][N];//第i个位置用第j种边可以到达哪里
i64 dp[3 * M];
int du[3 * M];

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, m, cost;
    cin >> n >> m >> cost;
    for (int i = 1; i <= n; i++) {
        cin >> a[i][0] >> a[i][1] >> a[i][2];
    }
    for (int i = 1; i <= m; i++) {
        cin >> d[i].fi >> d[i].se;
    }
    sort(a + 1, a + n + 1, [&](auto x, auto y) {
        return x[0]<y[0];
    });
    sort(d + 1, d + 1 + m);
    int idx = 0;
    for (int i = 1; i <= m; i++) {
        while (d[i].se) {
            d[i].se--;
            b[++idx] = d[i].fi;
        }
    }
    for (int i = 1; i <= min(350, n); i++) {
        for (int j = 1, r = -1; j <= idx; j++) {
            while (r != idx && (r + 1 - j + 1 <= a[i][1] && b[r + 1] - b[j] + 1 <= a[i][0]))r++;
            nxt[j][i] = r + 1;
            du[r + 1]++;
        }
    }
    idx++;
    for (int i = 2; i <= idx; i++) {
        du[i]++;
    }
    for (int i = 1; i < idx; i++) {
        nxt[i][0] = i + 1;
    }
    for (int i = 0; i <= idx; i++) {
        dp[i] = 1e18;
    }
    dp[1] = 0;
    queue<int> q;
    a[0][2] = cost;
    q.push(1);
    while (q.size()) {
        auto t = q.front();
        q.pop();
        for (int i = 0; i <= min(350, n); i++) {
            int j = nxt[t][i];
            int w = a[i][2];
            du[j]--;
            if (du[j] == 0)q.push(j);
            dp[j] = min(dp[j], dp[t] + w);
        }
    }
    cout << dp[idx] << endl;
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 9976kb

input:

2 1 10
1 3 12
1 2 9
1 10

output:

42

result:

ok 1 number(s): "42"

Test #2:

score: 0
Accepted
time: 1ms
memory: 9740kb

input:

2 4 10
1 3 12
1 2 9
1 3
2 3
3 3
4 1

output:

45

result:

ok 1 number(s): "45"

Test #3:

score: 0
Accepted
time: 873ms
memory: 584324kb

input:

500 100 1000
95 20 20892
73 627 55354
52 747 1404314
19 676 597007
65 814 1569851
91 397 691575
81 4 4575
97 382 624404
21 197 201850
67 799 643576
27 895 1510533
3 800 552439
49 954 1149851
70 892 676406
82 882 1348956
1 318 324094
43 238 439111
94 397 471003
16 119 130686
1 637 77731
79 292 35234
...

output:

450790

result:

ok 1 number(s): "450790"

Test #4:

score: 0
Accepted
time: 917ms
memory: 605956kb

input:

500 100 1000
8 910 1405086
65 931 697221
73 534 1051699
74 13 7497
64 631 991592
79 481 511568
92 892 477132
91 588 842013
21 389 750794
19 955 1333270
85 889 1334457
46 295 505372
83 486 449366
67 67 119659
82 446 408487
25 736 319997
31 889 23280
1 41 74813
93 928 1189573
88 468 455471
7 10 18865
...

output:

3276270

result:

ok 1 number(s): "3276270"

Test #5:

score: 0
Accepted
time: 826ms
memory: 553944kb

input:

500 100 1000
35 122 153490
71 121 27207
73 967 409546
88 325 182835
37 602 533155
61 546 114146
70 359 251186
64 429 591088
63 445 428802
81 819 408704
49 364 244867
64 937 1422956
98 505 713891
1 454 61697
91 673 116038
89 463 123737
67 724 1061372
31 1 1838
73 127 173419
72 122 8068
55 928 65539
3...

output:

762564

result:

ok 1 number(s): "762564"

Test #6:

score: 0
Accepted
time: 910ms
memory: 601052kb

input:

500 100 1000
77 590 825100
67 901 1633566
29 703 886708
86 223 168970
6 676 1162365
46 669 1308904
73 96 125961
37 529 774376
79 741 516927
95 835 602321
25 208 384673
16 20 12510
41 226 164928
68 836 1412302
52 689 418717
40 481 789905
10 838 220638
35 846 885451
54 736 1470524
13 490 224433
12 354...

output:

300840

result:

ok 1 number(s): "300840"

Test #7:

score: -100
Wrong Answer
time: 834ms
memory: 554528kb

input:

500 100 1000
39 154 45298
34 357 85100
46 557 748764
24 896 665708
97 28 1885
42 668 1223574
53 614 669616
28 648 1145794
28 649 1208449
93 689 1227367
56 772 163614
54 468 462959
28 400 721934
25 391 208246
55 388 473486
67 106 55488
63 10 18506
6 113 191992
43 100 165666
29 952 1200973
79 519 5596...

output:

2141412

result:

wrong answer 1st numbers differ - expected: '1147818', found: '2141412'