全部评论 2

  • 缩进有点怪

    2024-08-01 来自 浙江

    0
  • #include<bits/stdc++.h>
    using namespace std;
    int r,c;//行数列数
    char mp[1009][1009];//地图
    int dir[4][2]={0,-1,-1,0,1,0,0,1};//方向数组

    void dfs(int x,int y){//深度优先搜索(dfs)
    mp[x][y]='';//将mp[x][y]标记为,不能再次访问(标记)
    for(int i=0;i<4;i++){//循环四次,遍历上下左右四个方向
    //下一次走的位置
    int fx=dir[i][0]+x;
    int fy=dir[i][1]+y;
    if(fx>0 && fx<=r && fy>0 && fy<=c && mp[fx][fy]=='#'){
    //判断有没有越界和能不能走
    dfs(fx,fy);//搜索下一个位置
    }
    }
    }

    bool d(int i,int j){//判断合不合法
    int c=0;
    if(mp[i][j]'#')c++;
    if(mp[i+1][j]
    '#')c++;
    if(mp[i][j+1]'#')c++;
    if(mp[i+1][j+1]
    '#')c++;
    if(c==3)return 0;
    return 1;
    }

    int main(){
    cin>>r>>c;
    int i,j;
    for(i=1;i<=r;i++){
    for(j=1;j<=c;j++){
    cin>>mp[i][j];
    }
    }
    int s=0;//船数
    for(i=1;i<=r;i++){
    for(j=1;j<=c;j++){
    if(i<r && j<c && d(i,j)0){
    cout<<"Bad placement.";
    return 0;
    }
    }
    }
    for(i=1;i<=r;i++){
    for(j=1;j<=c;j++){
    if(mp[i][j]
    '#'){
    s++;
    dfs(i,j);
    }
    }
    }
    cout<<"There are "<<s<<" ships.";
    return 0;
    }
    (哪里不对吱一声)

    2024-08-01 来自 浙江

    0

热门讨论