拿捏
2026-06-14 12:02:56
发布于:广东
9阅读
0回复
0点赞
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std;
int main() {
int n;
scanf("%d", &n);
long long w[3][3];
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
scanf("%lld", &w[i][j]);
}
}
vector<long long> dp(3, 0);
vector<long long> ndp(3, 0);
// 读取第一天的数值并初始化
long long a, b, c;
scanf("%lld %lld %lld", &a, &b, &c);
dp[0] = a;
dp[1] = b;
dp[2] = c;
for (int i = 1; i < n; ++i) {
scanf("%lld %lld %lld", &a, &b, &c);
ndp[0] = max(dp[1] + w[1][0], dp[2] + w[2][0]) + a;
ndp[1] = max(dp[0] + w[0][1], dp[2] + w[2][1]) + b;
ndp[2] = max(dp[0] + w[0][2], dp[1] + w[1][2]) + c;
dp.swap(ndp);
}
long long ans = max({dp[0], dp[1], dp[2]});
printf("%lld\n", ans);
return 0;
}
这里空空如也





有帮助,赞一个