游游拿到了一个 行 列的字母矩阵,矩阵中仅包含大小写字母。 现在游游有 次操作,每次操作选择一个子矩阵,将其中所有字母大小写转换(大写变小写,小写变大写)。 请你输出游游所有操作结束后的矩阵。
区块链毕设网qklbishe.com为您提供问题的解答
游游拿到了一个 行 列的字母矩阵,矩阵中仅包含大小写字母。
现在游游有 次操作,每次操作选择一个子矩阵,将其中所有字母大小写转换(大写变小写,小写变大写)。
请你输出游游所有操作结束后的矩阵。
二维差分数组。
#include <bits/stdc++.h> using namespace std; int main() { int n, m, q; cin >> n >> m >> q; vector<string > matrix(n); for (int i = 0; i < n; i++) cin >> matrix[i]; int diff[501][501] = {0}; while (q--) { int r1, c1, r2, c2; cin >> r1 >> c1 >> r2 >> c2; r1--; c1--; diff[r1][c1]++; diff[r1][c2]--; diff[r2][c1]--; diff[r2][c2]++; } int prev[501][501] = {0}; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { prev[i + 1][j + 1] = prev[i + 1][j] + prev[i][j + 1] - prev[i][j] + diff[i][j]; if (prev[i + 1][j + 1] & 1) { char c = matrix[i][j]; if (c >= 'a' && c <= 'z') matrix[i][j] = toupper(c); else matrix[i][j] = tolower(c); } } } for (auto& s : matrix) { cout << s << endl; } }
01:54
以上就是关于问题游游拿到了一个 行 列的字母矩阵,矩阵中仅包含大小写字母。
现在游游有 次操作,每次操作选择一个子矩阵,将其中所有字母大小写转换(大写变小写,小写变大写)。
请你输出游游所有操作结束后的矩阵。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训