QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#525658 | #4561. Catfish Farm | green_gold_dog# | 23 | 67ms | 16552kb | C++20 | 3.6kb | 2024-08-20 20:05:40 | 2024-08-20 20:05:41 |
Judging History
answer
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
const long long INF = 1'000'000'000'000'000'000;
long long max_weights(ll n, ll m, vector<ll> x, vector<ll> y, vector<ll> w) {
vector<vector<pair<ll, ll>>> all(n);
for (ll i = 0; i < m; i++) {
all[x[i]].emplace_back(y[i], w[i]);
}
for (ll i = 0; i < n; i++) {
sort(all[i].begin(), all[i].end());
}
vector<long long> dpp(all[1].size() + all[0].size() + 1, -INF);
vector<long long> dpnp(all[1].size() + all[0].size() + 1, -INF);
vector<ll> to(all[1].size() + all[0].size() + 1, -1);
vector<ll> to2(all[1].size() + all[0].size() + 1, -1);
ll now0 = 0, now1 = 0;
long long sum = 0;
dpp[0] = 0;
to[0] = 0;
to2[0] = 0;
while (now0 < all[0].size() || now1 < all[1].size()) {
ll nxt = min((now0 == all[0].size() ? n : all[0][now0].first),
(now1 == all[1].size() ? n : all[1][now1].first));
if (now0 < all[0].size() && nxt == all[0][now0].first) {
now0++;
}
if (now1 < all[1].size() && nxt == all[1][now1].first) {
sum += all[1][now1].second;
now1++;
}
dpp[now1 + now0] = max(dpp[now1 + now0], sum);
to[now1 + now0] = now0;
to2[now1 + now0] = now1;
}
dpnp = dpp;
all.push_back(vector<pair<ll, ll>>(0));
for (ll i = 1; i < n; i++) {
vector<long long> ndpp(all[i + 1].size() + all[i].size() + 1, -INF);
vector<long long> ndpnp(all[i + 1].size() + all[i].size() + 1, -INF);
vector<ll> nto(all[i + 1].size() + all[i].size() + 1, -1);
vector<ll> nto2(all[i + 1].size() + all[i].size() + 1, -1);
nto[0] = 0;
nto2[0] = 0;
long long s = 0;
ll u = 0;
for (ll ct = 0; ct <= all[i].size() + all[i - 1].size(); ct++) {
ll nowi = 0, nowip = 0, nowim = 0;
long long nans = 0, s1 = s, s2 = 0;
ndpp[0] = max(ndpp[0], dpp[ct]);
ndpp[0] = max(ndpp[0], dpnp[ct]);
ndpnp[0] = max(ndpnp[0], dpp[ct] - s1);
ndpnp[0] = max(ndpnp[0], dpnp[ct] - s1);
while (nowi < all[i].size() || nowip < all[i + 1].size() || nowim < all[i - 1].size()) {
ll nxt = min({(nowi == all[i].size() ? n : all[i][nowi].first),
(nowip == all[i + 1].size() ? n : all[i + 1][nowip].first),
(nowim == all[i - 1].size() ? n : all[i - 1][nowim].first)});
if (nowi < all[i].size() && nxt == all[i][nowi].first) {
if (nowi < to2[ct]) {
nans -= all[i][nowi].second;
s1 -= all[i][nowi].second;
}
nowi++;
}
if (nowip < all[i + 1].size() && nxt == all[i + 1][nowip].first) {
nans += all[i + 1][nowip].second;
nowip++;
}
if (nowim < all[i - 1].size() && nxt == all[i - 1][nowim].first) {
if (to[ct] <= nowim) {
nans += all[i - 1][nowim].second;
s2 += all[i - 1][nowim].second;
}
nowim++;
}
ndpp[nowip + nowi] = max(ndpp[nowip + nowi], nans + dpp[ct] - s2);
ndpp[nowip + nowi] = max(ndpp[nowip + nowi], nans + dpnp[ct]);
ndpnp[nowip + nowi] = max(ndpnp[nowip + nowi], nans + dpp[ct] - s2 - s1);
ndpnp[nowip + nowi] = max(ndpnp[nowip + nowi], nans + dpnp[ct] - s1);
nto[nowip + nowi] = nowi;
nto2[nowip + nowi] = nowip;
}
if (ct + 1 < to.size() && to2[ct] != to2[ct + 1]) {
s += all[i][u].second;
u++;
}
}
dpp = ndpp;
dpnp = ndpnp;
to = nto;
to2 = nto2;
}
long long ans = 0;
for (auto i : dpp) {
ans = max(ans, i);
}
for (auto i : dpnp) {
ans = max(ans, i);
}
return ans;
}
#ifdef LOCAL
int main() {
int N, M;
assert(2 == scanf("%d %d", &N, &M));
std::vector<int> X(M), Y(M), W(M);
for (int i = 0; i < M; ++i) {
assert(3 == scanf("%d %d %d", &X[i], &Y[i], &W[i]));
}
long long result = max_weights(N, M, X, Y, W);
printf("%lld\n", result);
return 0;
}
#endif
详细
Subtask #1:
score: 0
Time Limit Exceeded
Test #1:
score: 0
Time Limit Exceeded
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 80699 0 10792 55091480 0 36762 389250726 0 79267 706445371 0 76952 290301137 0 13444 69711795 0 68980 66221400 0 1695 703252611 0 36628 632571604 0 87676 264578012 0 79496 397448339 0 57929 447544332 0 35453 355374818 0 62449 686423696 0 45614 667165709...
output:
Unauthorized output
result:
Subtask #2:
score: 0
Time Limit Exceeded
Test #7:
score: 6
Accepted
time: 0ms
memory: 3772kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #8:
score: 0
Time Limit Exceeded
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 161862 0 56823 293232472 0 28967 124369573 1 8799 138712011 0 87115 743135614 1 56429 262092699 0 61318 597172732 0 39127 477101342 1 44938 277680401 1 79037 997527330 1 88113 13289754 0 29715 35249311 0 50637 709319782 1 20760 845594381 1 80662 6299890...
output:
Unauthorized output
result:
Subtask #3:
score: 9
Accepted
Test #20:
score: 9
Accepted
time: 4ms
memory: 9380kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 0 0 10082010
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 10082010
result:
ok 3 lines
Test #21:
score: 9
Accepted
time: 9ms
memory: 9268kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 0 882019
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 882019
result:
ok 3 lines
Test #22:
score: 9
Accepted
time: 23ms
memory: 11760kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 90000 53444 40538 0 933021958 22736 0 403565340 52395 0 535014365 46488 0 818102149 19082 0 825246110 7712 0 581240932 30019 0 143288209 16519 0 206714026 8855 0 737518859 44939 0 63482743 40524 0 963968043 2663 0 953447256 25511 0 762455895 10794 0 880225092...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 21261825233649
result:
ok 3 lines
Test #23:
score: 9
Accepted
time: 18ms
memory: 10272kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 35893 58578 0 304141028 55753 0 423438149 28242 0 9158978 26888 0 284963184 54273 0 494234963 29697 0 240842358 86194 0 789279485 58100 0 572200683 57232 0 355330259 21029 0 261781158 20244 0 594911163 84269 0 452539910 35836 0 228436540 86304 0 785924...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 14486631352875
result:
ok 3 lines
Test #24:
score: 9
Accepted
time: 35ms
memory: 13512kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 100000 79988 0 40146450 9642 0 4878540 15808 0 7990718 87998 0 44144800 50 0 28601 87736 0 44009424 1293 0 663798 5837 0 2957384 63202 0 31702174 47501 0 23852124 73162 0 36720321 22116 0 11144107 10533 0 5323103 11339 0 5737527 94001 0 47121962 57059 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 1673106170551
result:
ok 3 lines
Test #25:
score: 9
Accepted
time: 34ms
memory: 13448kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 100000 29663 0 1 8831 0 1 36979 0 1 18031 0 1 58035 0 1 17126 0 1 39877 0 1 65204 0 1 95787 0 1 3456 0 1 70567 0 1 32636 0 1 25925 0 1 28249 0 1 44082 0 1 96342 0 1 85086 0 1 34386 0 1 14480 0 1 76553 0 1 52077 0 1 9592 0 1 23079 0 1 40176 0 1 12131 0 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 141909
result:
ok 3 lines
Test #26:
score: 9
Accepted
time: 32ms
memory: 15392kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 100000 83585 0 2094163 24287 0 2036215 24300 0 2033375 19914 0 2054613 21378 0 2041083 21499 0 2045341 90833 0 2102645 61879 0 2063456 1760 0 2002021 88192 0 2110989 53350 0 2053627 16287 0 2051126 65429 0 2060736 51431 0 2072545 77128 0 2074487 42574 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 136990846207
result:
ok 3 lines
Test #27:
score: 9
Accepted
time: 32ms
memory: 13824kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 100000 85230 0 4609010 60078 0 12007449 43791 0 3942515 1997 0 2998622 56562 0 10337802 20938 0 11560354 76302 0 3874165 47495 0 5809667 11746 0 7920761 33327 0 5406979 78092 0 2965837 99383 0 11744076 52546 0 8319876 51870 0 7985523 71948 0 6035731 86...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 469063835000
result:
ok 3 lines
Subtask #4:
score: 0
Wrong Answer
Test #28:
score: 14
Accepted
time: 0ms
memory: 4056kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 4 3 2 2 1 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 3
result:
ok 3 lines
Test #29:
score: 14
Accepted
time: 0ms
memory: 3796kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 8 7 5 5 1 4 4 1 6 6 1 3 3 1 0 0 1 2 2 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 7
result:
ok 3 lines
Test #30:
score: 14
Accepted
time: 0ms
memory: 3796kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 0 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #31:
score: 14
Accepted
time: 0ms
memory: 3796kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 3 2 2 0 1 1 1 1
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 2
result:
ok 3 lines
Test #32:
score: 0
Wrong Answer
time: 1ms
memory: 3808kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 150 600 79 2 983288470 11 0 322623476 136 0 774411048 24 2 816724362 21 2 719492379 33 3 892309581 47 0 473707335 31 2 781573473 138 2 82986686 75 1 126753954 20 1 54988783 121 1 691958594 20 0 545299878 96 0 637112704 108 1 558914127 74 2 517404335 94 1 7420...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 216637029142
result:
wrong answer 3rd lines differ - expected: '216624184325', found: '216637029142'
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%
Subtask #7:
score: 14
Accepted
Test #60:
score: 14
Accepted
time: 27ms
memory: 15368kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 99999 31026 31026 1 42940 42940 1 69303 69303 1 90350 90350 1 77507 77507 1 87126 87126 1 17988 17988 1 5146 5146 1 63023 63023 1 27776 27776 1 6136 6136 1 82557 82557 1 24904 24904 1 21667 21667 1 67271 67271 1 80294 80294 1 81145 81145 1 47144 47144 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 99999
result:
ok 3 lines
Test #61:
score: 14
Accepted
time: 27ms
memory: 9600kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 50000 100000 43737 0 616909786 28149 1 83561192 31215 0 81425452 11831 1 127789871 33975 1 294422160 44409 1 920754334 44149 1 547214118 23078 0 749134931 39070 1 425147230 39398 1 49764337 49388 0 1922565 13827 0 24394607 45462 0 276157952 30584 0 435992379 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 36454348383152
result:
ok 3 lines
Test #62:
score: 14
Accepted
time: 59ms
memory: 16552kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 200000 74413 0 331848521 65625 1 270985578 74834 1 254858924 64748 0 225446772 49477 1 805769691 51151 0 936768358 3414 0 489367009 16978 1 568800724 73971 1 362063327 69520 0 167769953 74767 0 685485032 98265 0 800000672 37113 0 607119114 76712 0 7360...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 72889508713304
result:
ok 3 lines
Test #63:
score: 14
Accepted
time: 6ms
memory: 9112kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 0 882019
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 882019
result:
ok 3 lines
Test #64:
score: 14
Accepted
time: 9ms
memory: 8256kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 1 99999 99999 1062016
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 1062016
result:
ok 3 lines
Test #65:
score: 14
Accepted
time: 38ms
memory: 12648kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 99714 95877 95661 904971232 48936 51182 87613544 99510 69524 166560840 69063 54711 527961593 44663 66079 840368080 48858 31915 855482971 48792 25347 551893652 3707 58511 133271545 54098 19896 960800491 99183 25598 251063376 32001 95465 62448024 61669 1...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 45561826463480
result:
ok 3 lines
Test #66:
score: 14
Accepted
time: 65ms
memory: 15712kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 200000 42723 5 613400260 58966 2 74293186 85675 5 726517941 55191 2 908099198 80402 5 870990015 75112 2 753630703 89766 2 744115390 61562 3 272169768 20221 3 534855944 55871 1 290708263 7142 2 528459486 73958 2 426196098 63523 6 834100236 55657 3 84532...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 77772396150817
result:
ok 3 lines
Test #67:
score: 14
Accepted
time: 67ms
memory: 15692kb
input:
f785163bfcb92ce6ac387bba5d2f29a0e0f37f19 100000 200000 60643 658 631445964 2961 2963 687789209 87494 2489 784136198 29846 148 831058813 64552 4567 700351843 7992 2006 222736484 75778 4206 149600820 41911 1920 169469933 68695 1291 755002158 79131 854 717849671 30019 26 141467206 17779 2216 918100479 ...
output:
938f2698235a9ff1d1d91e23381b68bec7bed102 OK 77992411858808
result:
ok 3 lines
Subtask #8:
score: 0
Skipped
Dependency #1:
0%