python排序之快速排序
阿新 • • 發佈:2022-05-15
題面:掃雷遊戲
思路:
判斷每一個為 ? 的點的上、下、左、右、左上、左下、右上、右下的點共有幾個為 * 的點,有幾個,該點的值就是幾
#include<bits/stdc++.h> using namespace std; int n,m; int a[2000][2000]; char c[2000][2000]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>c[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(c[i][j]!='*')//該點是 ? { if(c[i-1][j]=='*') a[i][j]++; if(c[i][j-1]=='*') a[i][j]++; if(c[i+1][j]=='*') a[i][j]++; if(c[i][j+1]=='*') a[i][j]++; if(c[i-1][j-1]=='*') a[i][j]++; if(c[i-1][j+1]=='*') a[i][j]++; if(c[i+1][j-1]=='*') a[i][j]++; if(c[i+1][j+1]=='*') a[i][j]++; //判斷該點的上、下、左、右、左上、左下、右上、右下的點共有幾個為 * 的點,並記錄 } else //對是 * 的點打標記 a[i][j]=-1; } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) if(a[i][j]!=-1) cout<<a[i][j]; else cout<<"*"; cout<<endl; } return 0; }