每日一题——BMN3 小红炸砖块
“落下”操作只会对y轴有影响,所以注意y轴的变化即可
只要给出的坐标有砖块,就遍历查找他的上面是否有砖块,每一层都是这样,直到到没有砖块的那一层;
注意:定义矩阵时要注意,给出的坐标都是大于0的,所以声明时要把数组处理一下;如果是用vector的话可以对坐标进行操作
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,m,k;
cin>>n>>m>>k;
vector<vector<char>> v(n, vector<char>(m,'*'));
int x,y;
for(int i=0;i<k;i++)
{
cin>>x>>y;
x--;y--;
if (v[x][y] == '*')
{
for (int i = x; i > 0; i--)
{
v[i][y] = v[i - 1][y];
}
v[0][y] = '.';
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<v[i][j];
}
cout<<endl;
}
}
// 64 位输出请用 printf("%lld")