zoukankan      html  css  js  c++  java
  • 题解 P6194 【[EER1]苏联人】

    这道题是一道非常良心的签到题但我却错了好几次(雾

    (Solution)

    这道题有一个坑点,就是你不能一边读入一边就处理了,我就栽在了这个坑里。处理战车和主教需要用到三重循环,前两重遍历横纵坐标,第三重遍历战车或主教能攻击到的位置,战车和主教每个都用四个单重循环来遍历位置,具体内容参见代码。

    (code)

    //#include<bits/stdc++.h>//万能头文件
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;//标准数据库
    char ch[8][8];
    bool ans[8][8];
    int main()
    {
        for(int i=0;i<8;i++) scanf("%s",ch[i]);//现将整个棋盘输入进去
        for(int i=0;i<8;i++)//遍历8行
        {
            for(int j=0;j<8;j++)//遍历8列
            {
                if(ch[i][j]=='R')//如果是战车
                {
                    ans[i][j]=1;//先将自己站的位置标1
                    for(int k=i-1;k>=0 && ch[k][j]=='.';k--) ans[k][j]=1;//这个战车的上方不能放国王,所以全都设为1
                    for(int k=i+1;k<8 && ch[k][j]=='.';k++) ans[k][j]=1;//这个战车的下方也不能放国王,所以也全都设成1
                    for(int k=j-1;k>=0 && ch[i][k]=='.';k--) ans[i][k]=1;//同理这个战车的z左边也不能放国王
                    for(int k=j+1;k<8 && ch[i][k]=='.';k++) ans[i][k]=1;//同理这个战车的右边也不能放国王
                }
                else if(ch[i][j]=='B')//如果是主教
                {
                    ans[i][j]=1;//先将自己的位置标1
                    for(int k=i-1,l=j-1;k>=0 && l>=0 && ch[k][l]=='.';k--,l--) ans[k][l]=1;//左上方不能放国王
                    for(int k=i+1,l=j+1;k<8 && l<8 && ch[k][l]=='.';k++,l++) ans[k][l]=1;//右下方也不能放国王
                    for(int k=i-1,l=j+1;k>=0 && l<8 && ch[k][l]=='.';k--,l++) ans[k][l]=1;//右上方也不能放国王
                    for(int k=i+1,l=j-1;k<8 && l>=0 && ch[k][l]=='.';k++,l--) ans[k][l]=1;//左下方也不能放国王
                }
            }
        }
        for(int i=0;i<8;i++)
        {
            for(int j=0;j<8;j++) printf("%d",!ans[i][j]);//因为上面不行的地方全取的是1,所以输出时取反即可
            puts("");
        }
        return 0;
    }
    

    记得留赞呦,Thanks♪(・ω・)ノ

  • 相关阅读:
    -bash: fork: Cannot allocate memory 问题的处理
    Docker top 命令
    docker常见问题修复方法
    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
    What's the difference between encoding and charset?
    hexcode of é î Latin-1 Supplement
    炉石Advanced rulebook
    炉石bug反馈
    Sidecar pattern
    SQL JOIN
  • 原文地址:https://www.cnblogs.com/ForeverOIer/p/12660406.html
Copyright © 2011-2022 走看看