T4

发布时间 2023-11-20 10:32:10作者: Jeanny
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,t,k,d,c,dp[5005][5005],x,y,z,a[5005][5005],s[5005][5005];
signed main(){
	scanf("%d%d",&c,&t);
	for(int p = 1; p <= t; p++){
		memset(a, 0, sizeof a);//
		memset(dp, 0xCF, sizeof dp);
		scanf("%lld%lld%lld%lld",&n,&m,&k,&d);
		for(int i = 1; i <= m; i++){
			scanf("%lld%lld%lld",&x,&y,&z);
			a[x][y] += z; 
		} 
		for(int i=1;i<=n;i++)
        	for(int j=1;j<=min(k,i);j++)
            	s[i][j] = s[i][j-1] + a[i][j];
        dp[0][0] = 0;
		for(int i = 1; i <= n; i++){
			for(int j = 1; j <= min(k,i); j++){
				dp[i][j] = max(dp[i][j], dp[i - 1][j-1] + s[i][j] - d);	//s[][] 
				dp[i][0] = max(dp[i][0], dp[i-1][j]);	
//				cout<<"dp: "<<i<<" "<<j<<" "<<dp[i][j]<<" "<<dp[i][0]<<endl;	
			}	
			dp[i][0] = max(dp[i][0], dp[i-1][0]);		
		}
		int ans = 0;
		for(int i = 0; i <= k; i++)
			ans = max(ans, dp[n][i]);
		cout<<ans<<endl;	
	}
	return 0;
}
in:
100 100 67 99205
37 30 10193962
78 30 3839070
83 55 2643583
69 24 10222134
24 13 5046128
69 20 101317
95 17 5958443
73 38 3190103
91 61 6247550
51 33 3168464
67 25 2667720
44 43 6202234
53 32 10576167
54 25 5553542
85 26 384720
31 28 11089763
76 31 9077972
92 9 3808854
72 7 87305
81 24 787380
33 11 4925910
76 63 6014640
73 23 9125372
69 62 6774419
83 39 7450907
36 3 11453859
88 38 888191
75 55 1651509
38 19 1257732
75 33 8829519
69 56 388621
88 61 7356126
92 16 2174349
56 27 1160658
100 60 915243
82 62 1793569
96 28 5733936
51 35 7679663
93 53 316481
40 30 8733525
12 2 900598
89 16 8627696
15 4 7581961
99 52 6221325
30 10 7508411
63 14 9004799
72 24 1832436
62 54 3326300
87 61 6785291
57 52 7652079
50 40 10603993
7 7 8467402
73 34 3013261
97 23 2867474
11 3 5696688
86 22 8784884
73 9 5377778
80 47 11257324
91 67 5483362
95 51 9355523
55 53 6393389
58 51 10014251
74 14 4420371
56 44 1037698
78 8 2831276
84 42 2218306
77 64 2970851
84 12 7374539
100 27 7675933
99 32 3680686
67 6 10658421
33 20 2467579
49 47 4613533
85 58 4829503
88 64 9878949
60 49 4526098
94 5 2037027
91 18 3675393
86 45 8013602
98 15 11628362
41 16 4302874
85 52 3674226
78 5 8961312
72 51 2770171
89 65 7175808
69 23 8198905
31 14 2525672
85 50 6537487
45 25 9103212
47 47 4216128
81 28 2064327
55 2 11778385
95 39 719207
85 48 10895969
76 6 11074213
95 47 11732207
68 34 6641106
50 41 4924930
64 38 986708
64 38 9948554
out:
338941168