62 lines
1.7 KiB
C++
62 lines
1.7 KiB
C++
//#include <iostream>
|
|
//#include <vector>
|
|
//#include <algorithm>
|
|
//
|
|
//using namespace std;
|
|
//
|
|
//int n, m;
|
|
//vector<vector<long long>> dp; // 记忆化数组
|
|
//
|
|
//// 计算 2^power
|
|
//long long powerOfTwo(int power) {
|
|
// long long result = 1;
|
|
// for (int i = 0; i < power; ++i) {
|
|
// result *= 2;
|
|
// }
|
|
// return result;
|
|
//}
|
|
//
|
|
//// 递归函数:选择向量的头或尾来查找最大值
|
|
//long long findMaxRecursive(const vector<int>& b, int left, int right, int power) {
|
|
// if (left > right) {
|
|
// return 0;
|
|
// }
|
|
// if (left == right) {
|
|
// return b[left] * powerOfTwo(power);
|
|
// }
|
|
// if (dp[left][right] != -1) { // 如果已经计算过,直接返回结果
|
|
// return dp[left][right];
|
|
// }
|
|
// long long maxHead = findMaxRecursive(b, left + 1, right, power + 1) + b[left] * powerOfTwo(power);
|
|
// long long maxTail = findMaxRecursive(b, left, right - 1, power + 1) + b[right] * powerOfTwo(power);
|
|
// dp[left][right] = max(maxHead, maxTail); // 记录计算结果
|
|
// return dp[left][right];
|
|
//}
|
|
//
|
|
//long long solve(const vector<vector<int>>& matrix) {
|
|
// long long totalMaxScore = 0;
|
|
// for (const auto& row : matrix) {
|
|
// int rowSize = row.size();
|
|
// // 动态调整 dp 的大小并初始化
|
|
// dp = vector<vector<long long>>(rowSize, vector<long long>(rowSize, -1));
|
|
// totalMaxScore += findMaxRecursive(row, 0, rowSize - 1, 1);
|
|
// }
|
|
// return totalMaxScore;
|
|
//}
|
|
//
|
|
//int main() {
|
|
// cin >> n >> m;
|
|
// vector<vector<int>> a(n, vector<int>(m));
|
|
//
|
|
// // 读取输入
|
|
// for (int i = 0; i < n; i++) {
|
|
// for (int j = 0; j < m; j++) {
|
|
// cin >> a[i][j];
|
|
// }
|
|
// }
|
|
//
|
|
// cout << solve(a) << endl;
|
|
//
|
|
// return 0;
|
|
//}
|