QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#525735#4561. Catfish Farmgreen_gold_dog0 50ms16152kbC++203.6kb2024-08-20 21:23:512024-08-20 21:23:52

Judging History

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

  • [2024-08-20 21:23:52]
  • 评测
  • 测评结果:0
  • 用时:50ms
  • 内存:16152kb
  • [2024-08-20 21:23:51]
  • 提交

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++) {
			if (dpp[ct] == -INF) {
				continue;
			}
			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)});
				bool b = nowi < to2[ct];
				if (nowi < all[i].size() && nxt == all[i][nowi].first) {
					if (b) {
						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 (!b) {
						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

Details

Tip: Click on the bar to expand more detailed information

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: 3780kb

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: 0
Wrong Answer

Test #20:

score: 9
Accepted
time: 4ms
memory: 8612kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 1
0 0 10082010

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
10082010

result:

ok 3 lines

Test #21:

score: 9
Accepted
time: 9ms
memory: 9164kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 1
99999 0 882019

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
882019

result:

ok 3 lines

Test #22:

score: 0
Wrong Answer
time: 23ms
memory: 12268kb

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
21669462288102

result:

wrong answer 3rd lines differ - expected: '21261825233649', found: '21669462288102'

Subtask #4:

score: 0
Wrong Answer

Test #28:

score: 14
Accepted
time: 0ms
memory: 4064kb

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: 3776kb

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: 3768kb

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: 3776kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
3 2
2 0 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
2

result:

ok 3 lines

Test #32:

score: 14
Accepted
time: 1ms
memory: 3832kb

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
216624184325

result:

ok 3 lines

Test #33:

score: 14
Accepted
time: 1ms
memory: 3900kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
300 2400
173 2 605122964
182 1 915124935
228 4 536218616
188 1 277682068
88 0 326709697
177 2 623496380
297 7 863327652
140 2 138423292
285 1 13632981
41 2 75649420
224 6 197471342
251 5 439508855
167 3 861142148
56 0 344701471
250 2 995027405
95 7 843229073
...

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
799839985182

result:

ok 3 lines

Test #34:

score: 0
Wrong Answer
time: 1ms
memory: 3812kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
150 800
20 3 849357409
45 6 845379514
12 6 128280695
6 6 390372289
62 6 517437842
137 7 65548858
98 6 844399946
23 1 682947100
51 7 833340178
81 3 483754945
38 0 861597575
74 7 495104215
125 0 478378570
99 3 341278360
87 3 306019744
137 5 794376023
61 4 74825...

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
279142493945

result:

wrong answer 3rd lines differ - expected: '278622587073', found: '279142493945'

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%

Subtask #7:

score: 0
Wrong Answer

Test #60:

score: 14
Accepted
time: 33ms
memory: 13828kb

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: 29ms
memory: 9420kb

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: 50ms
memory: 16152kb

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: 4ms
memory: 8632kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 1
99999 0 882019

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
882019

result:

ok 3 lines

Test #64:

score: 14
Accepted
time: 9ms
memory: 8900kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 1
99999 99999 1062016

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
1062016

result:

ok 3 lines

Test #65:

score: 0
Wrong Answer
time: 40ms
memory: 13316kb

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
48160853997328

result:

wrong answer 3rd lines differ - expected: '45561826463480', found: '48160853997328'

Subtask #8:

score: 0
Skipped

Dependency #1:

0%