3 solutions
-
0
老师代码
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 105; int dp[N][N][N * N / 2], a[N][N]; int n, k; signed main(){ cin >> n >> k; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) cin >> a[i][j]; memset(dp, -0x3f, sizeof dp); dp[1][1][0] = a[1][1]; dp[1][1][1] = a[1][1] * 3; for (int i = 2; i <= n; i++) for (int j = 1; j <= i; j++) { for (int l = 0; l <= min(k, i); l++) dp[i][j][l] = max(dp[i - 1][j][l], dp[i - 1][j - 1][l]) + a[i][j]; for (int l = 1; l <= min(k, i); l++) dp[i][j][l] = max(dp[i][j][l], max(dp[i - 1][j][l - 1], dp[i - 1][j - 1][l - 1]) + a[i][j] * 3); } int ans = -1e18; for (int i = 1; i <= n; i++) for (int j = 0; j <= k; j++) ans = max(ans, dp[n][i][j]); cout << ans; return 0; }
Information
- ID
- 1038
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- 7
- Tags
- # Submissions
- 41
- Accepted
- 9
- Uploaded By