2 条题解

  • 3
    @ 2022-7-20 21:34:20
    #include<bits/stdc++.h>
    using namespace std;
    bool a[105][105];//一张地图,有雷为一,无雷为零 
    int main()
    {
        memset(a,0,sizeof(a));//地图最开始清空 
        int n,m;
        char tmp;
        cin>>n>>m; 
        for(int i=1;i<=n;i++)//读入地图 
        {
            for(int j=1;j<=m;j++) 
            {
                cin>>tmp;//读入每一个点 
                if(tmp=='*') a[i][j]=1;//如果是地雷就将这个点设为一 
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++)
            {
                if(a[i][j]==1) printf("*"); //如果是地雷不用输出数字 
                else
                {
                    printf("%d",a[i+1][j+1]+a[i+1][j-1]+a[i+1][j]+a[i][j+1]+a[i][j-1]+a[i-1][j+1]+a[i-1][j]+a[i-1][j-1]);
                    //将旁边的雷加起来输出 
                }
            }
            printf("\n");
        }
        return 0;//愉快的结束了主程序 
    }
    # 直接爆搜一遍就行了,一共就100*100次,不会超时
    
    • 1
      @ 2024-2-8 16:45:30
      #include<bits/stdc++.h>
      using namespace std;
      bool a[105][105];
      int main()
      {
          memset(a,0,sizeof(a));
          int n,m;
          char tmp;
          cin>>n>>m; 
          for(int i=1;i<=n;i++)
          {
              for(int j=1;j<=m;j++) 
              {
                  cin>>tmp;
                  if(tmp=='*') a[i][j]=1;
              }
          }
          for(int i=1;i<=n;i++)
          {
              for(int j=1;j<=m;j++)
              {
                  if(a[i][j]==1) printf("*"); 
                  else
                  {
                      printf("%d",a[i+1][j+1]+a[i+1][j-1]+a[i+1][j]+a[i][j+1]+a[i][j-1]+a[i-1][j+1]+a[i-1][j]+a[i-1][j-1]);
                      
                  }
              }
              printf("\n");
          }
          return 0;
      }
      
      • 1

      信息

      ID
      1615
      时间
      1000ms
      内存
      125MiB
      难度
      1
      标签
      递交数
      23
      已通过
      14
      上传者