Not Shading英语翻译

​​​​​​​https://acs.jxnu.edu.cn/contest/23/board/challenge/Aicon-default.png?t=M0H8https://acs.jxnu.edu.cn/contest/23/board/challenge/A2022 2.11

描述:

这里有n行m列的表格,一些单元格的颜色是黑色的,其他的单元格是白色的。

一步操作,你可以选择黑色的单元格做以下操作:

它所在的行全部变成黑色

或者它所在的那一列全部变成黑色。

给你两个整数r和c.找到最少的操作数,使得r行c列的单元格变成黑色,或者判断那是不可能的。

输入:

输入由多组测试数据组成,第一行包含一个整数t(1≤t≤1001≤t≤100) —测试组数。

测试数据描述如下: 

每组测试数据的第一行包含四个整数n,m,r和c(1≤n,m≤50;1≤r≤n;1≤c≤m) —表格中的行数和列数,你要将其变黑的那个单元格的行数和列数。

然后,接下来有n行,每行包含m个字母,每个字母是‘B’或‘W’,分别代表黑色和白色的单元格。

输出:

对于每组测试数据,如果不可能把r行c列的单元格变黑,输出-1,否则,输出单个整数--使得r行c列的单元变黑的最少操作数。

生词:

cell 单元格;细胞

respectively.分别;各自 
注释:

第一组测试数据如下:

(题图)

我们可以对1行2列的数进行操作,使得它所在行的所有单元格变黑,因此,1行4列的单元格将变黑。

第二组测试数据,2行1列的单元格已经是黑色的。

第三组测试数据,不可能将2行2列的单元格变黑。

第四组测试数据如下图:

参考代码:

#include<stdio.h>
#include<cstdlib>
#include<cstring>
int main()
{
    int t,m,n,r,c;
    char a[65][65],x;
    int i,j,flag;
    scanf("%d",&t);
    while(t--){
        scanf("%d%d%d%d",&m,&n,&r,&c);
        scanf("%c",&x);
        flag=0;
        for(i=1;i<=m;i++)
        {
            for(j=1;j<=n;j++)
            {
                scanf("%c",&a[i][j]);
                if(a[i][j]=='B')
                flag=1;
            }
           scanf("%c",&x);
        }
        if(a[r][c]=='B')
        printf("0\n");
        else if(flag==0)
        printf("-1\n");
        else{
                for(j=1;j<=n;j++)
                {
                    if(a[r][j]=='B')
                    {
                        flag=0;
                        printf("1\n");
                        break;
                    }
                }
                if(flag==1)
                for(i=1;i<=m;i++)
                {
                    if(a[i][c]=='B')
                    {
                        flag=0;
                        printf("1\n");
                        break;
                    }
                }
                if(flag==1)
                printf("2\n");
            }
    }
    return 0;
}

我们可以将2行2列单元格所在的列中的所有单元格变成黑色,然后我们可以将1行2列的黑色单元格所在的行变成黑色,因此,1行1列的单元格变成黑色。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
项目:使用AngularJs编写的简单 益智游戏(附源代码)  这是一个简单的 javascript 项目。这是一个拼图游戏,也包含一个填字游戏。这个游戏玩起来很棒。有两个不同的版本可以玩这个游戏。你也可以玩填字游戏。 关于游戏 这款游戏的玩法很简单。如上所述,它包含拼图和填字游戏。您可以通过移动图像来玩滑动拼图。您还可以选择要在滑动面板中拥有的列数和网格数。 另一个是填字游戏。在这里你只需要找到浏览器左侧提到的那些单词。 要运行此游戏,您需要在系统上安装浏览器。下载并在代码编辑器中打开此项目。然后有一个 index.html 文件可供您修改。在命令提示符中运行该文件,或者您可以直接运行索引文件。使用 Google Chrome 或 FireFox 可获得更好的用户体验。此外,这是一款多人游戏,双方玩家都是人类。 这个游戏包含很多 JavaScript 验证。这个游戏很有趣,如果你能用一点 CSS 修改它,那就更好了。 总的来说,这个项目使用了很多 javascript 和 javascript 库。如果你可以添加一些具有不同颜色选项的级别,那么你一定可以利用其库来提高你的 javascript 技能。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辉哥哥哟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值