teacher_code_c/矩阵取数简.cpp

60 lines
1.4 KiB
C++

//#include <iostream>
//#include <vector>
//#include <algorithm>
//
//using namespace std;
//
//int n, m;
//long long sum;
//
//// 输出矩阵(调试用)
//void out(const vector<vector<int>>& a) {
// int n = a.size();
// if (n == 0) return;
// int m = a[0].size();
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < m; j++) {
// cout << a[i][j] << " ";
// }
// cout << endl;
// }
//}
//
//// 递归函数:选择向量的头或尾来查找最大值
//long long findMaxRecursive(const vector<int>& b, int left, int right, int power) {
// if (left > right) {
// return 0;
// }
// if (left == right) {
// return b[left] * (1LL << power);
// }
// long long maxHead = findMaxRecursive(b, left + 1, right, power + 1) + b[left] * (1LL << power);
// long long maxTail = findMaxRecursive(b, left, right - 1, power + 1) + b[right] * (1LL << power);
// return max(maxHead, maxTail);
//}
//
//long long solve(const vector<vector<int>>& matrix) {
// long long totalMaxScore = 0;
// for (const auto& row : matrix) {
// totalMaxScore += findMaxRecursive(row, 0, row.size() - 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;
//}