前缀和,大佬救一下
查看原帖
前缀和,大佬救一下
844113
forzyq楼主2023/1/17 19:20
#include <iostream>
#include <algorithm>
using namespace std;
const int N=111;

int q[N][N],p[N][N];
int m,n;
int main()
{
    cin>>m>>n;
    for(int i=1;i<=m;i++)
        for(int j=0;j<=n;j++)
            {
                cin>>q[i][j];
                if(q[i][j]=='*')
                q[i][j]=1;
                else
                q[i][j]=0;
            }//地雷是1
    for(int i=1;i<=m;i++)
        for(int j=1;j<=n;j++)
        {
            p[i][j]=p[i-1][j]+p[i][j-1]-p[i-1][j-1]+q[i][j];
        }//前缀和表示前面的总雷
    for(int i=1;i<=m;i++)
    for(int j=1;j<=n;j++)
    q[i][j]=p[i+1][j+1]-p[i+1][max(j-2,0)]-p[max(0,i-2)][j+1]+p[max(0,i-2)][max(0,j-2)];
    //求差弄出九宫格
    for(int i=1;i<=m;i++)
    {for(int j=1;j<=m;j++)
    cout<<q[i][j];//怎么把雷输出┭┮﹏┭┮
    cout<<endl;
        
    }
    return 0;
}
2023/1/17 19:20
加载中...