题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int a[17][11];
for(int i = 1;i <= 15;i ++) {
for(int j = 1;j <= 10;j ++) cin >> a[i][j];
}
for(int j = 1;j <= 10;j ++) a[16][j] = 1;
// 输入大矩阵完成
int c[5][5];
for(int i = 1;i <= 4;i ++) {
for(int j = 1;j <= 4;j ++) cin >> c[i][j];
}
// 输入小矩阵完成
int b[17][11]; // 记录原版大矩阵
for(int i = 1;i <= 15;i ++) {
for(int j = 1;j <= 10;j ++) b[i][j] = a[i][j];
}
int p; // 起始位置
cin >> p;
// 备份完成
int idx = 0;
bool check = true; // 可以向下走
while(check == true){
idx ++;
for(int i = 1;i <= 4;i ++) {
for(int j = 1;j <= 4;j ++) {
a[idx + i - 1][p + j - 1] += c[i][j];
if(a[idx + i - 1][p + j - 1] == 2) check = false;
}
}
for(int i = 1;i <= 15;i ++) {
for(int j = 1;j <= 10;j ++) a[i][j] = b[i][j];
}
}
idx --;
for(int i = 1;i <= 4;i ++) {
for(int j = 1;j <= 4;j ++) {
a[idx + i - 1][p + j - 1] += c[i][j];
if(a[idx + i - 1][p + j - 1] == 2) check = false;
}
}
for(int i = 1;i <= 15;i ++) {
for(int j = 1;j <= 10;j ++) cout << a[i][j] << " ";
cout << endl;
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla