首页 > 其他分享 >2022.11.1每日一题

2022.11.1每日一题

时间:2022-11-03 10:22:19浏览次数:110  
标签:cnt ++ cb 每日 网格 int cw 2022.11

Daimayuan Online Judge-网格判断

题目描述

您将获得一个 \(n×n\) 的网格,网格中每个正方形的颜色为黑色或白色。如果满足以下所有条件,则网格是正确的:

  • 每行的黑色方块数与白色方块数相同。

  • 每列的黑色正方形数与白色方块数相同。

  • 没有行或列具有 \(3\) 个及以上相同颜色的连续正方形。

给定网格,确定它是否正确。

输入格式

第一行一个数字 \(n\)。
接下来 \(n\) 行,每行包含一个长度为 \(n\) 的由字符BW组成的字符串,代表网格正方形的颜色。

输出格式

如果网格正确,请打印数字 \(1\) 在一行上。否则,请打印数字 \(0\) 在一行上。

样例输入
4
WBBW
WBWB
BWWB
BWBW
样例输出
1
数据范围

\(2≤n≤24\),且 \(n\) 是偶数。

解题思路

数据范围不大,模拟即可。分别枚举行和列,判断每一行或列中的WB个数是否相等,不相等直接输出 \(0\),程序结束。同时在判断每一行或列中的WB个数是否相等的同时,设一个变量 \(cnt\),用于记录连续个数,只要当前字符和前一个字符相同,就进行加一,大于等于 \(3\) 直接跳出循环,输出 \(0\) 即可,否则重新设置为 \(1\)。

C++代码
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 30;

int n;
char g[N][N];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    cin >> n;
    for(int i = 1; i <= n; i ++)
        cin >> g[i] + 1;
    for(int i = 1; i <= n; i ++)
    {
        int cb = 0, cw = 0;
        int cnt = 1;
        for(int j = 1; j <= n; j ++)
        {
            if(j > 1)
            {
                if(g[i][j] == g[i][j - 1]) cnt ++;
                else cnt = 1;
            }
            if(cnt >= 3) break;

            if(g[i][j] == 'B') cb ++;
            else cw ++;
        }
        if(cb != cw || cnt >= 3)
        {
            puts("0");
            return 0;
        }
    }
    for(int i = 1; i <= n; i ++)
    {
        int cb = 0, cw = 0;
        int cnt = 1;
        for(int j = 1; j <= n; j ++)
        {
            if(j > 1)
            {
                if(g[j][i] == g[j - 1][i]) cnt ++;
                else cnt = 1;
            }
            if(cnt >= 3) break;
            
            if(g[j][i] == 'B') cb ++;
            else cw ++;
        }
        if(cb != cw || cnt >= 3)
        {
            puts("0");
            return 0;
        }
    }
    puts("1");
    return 0;
}

标签:cnt,++,cb,每日,网格,int,cw,2022.11
From: https://www.cnblogs.com/Cocoicobird/p/16853562.html

相关文章

  • 2022.11.2 模拟赛题解
    简要题意给定一棵\(n\)个节点的有根树,树根为\(1\)号节点,每个结点有一个权值\(a_i(|a_i|\leq10^9)\),求包含\(1\)的前\(k\)小的连通块的权值。简要题解前置内......
  • 739 每日温度
    题目739每日温度给定一个整数数组temperatures,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都......
  • 【2022.11.2】Vue基础学习(7)
    内容详细1vue3介绍1.性能的提升打包大小减少41%初次渲染快55%,更新渲染快133%内存减少54%2.源码的升级使用Proxy代替defineProperty实现响应式......
  • [2022.11.2]collection
    collection接口1.单列集合框架结构l----collection接口:单列集合,用来存储一个一个的对象/----List接口:存储序的、可重复的数据。-->“动态”数组/--......
  • 2022-11-02每日一题
    Acwing逆序对的个数给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第i个和第j个元素,如果满足i<j且a[i]>a[j],则其为一个......
  • 【2022.11.02】机器学习名词记录
    学习来源均来自:https://www.bilibili.com/video/BV1Wv411h7kN当我们设定函数的时候,不一定是线性的情况下,可以将一个曲线图拆分成多个函数相加正如下图中的红色图,是由四......
  • 2022年4月第十三届蓝桥杯省赛C组C语言 习题解析(每日一道)
    试题B:特殊时间   【问题描述】           2022年2月22日22:20是一个很有意义的时间,年份为2022,由3个2和1个0组   成,如果将月和日......
  • 【闲话】2022.11.01
    今天是冬月的第一天万圣节dsu晚上会去大家屋里要糖的说起来很久没喝南瓜粥了今日一推这种东西,本来就是越离谱越好阴蜂(早就)已经有理论解了大家要不去打一下((说起来......
  • 2022-11-01每日一题
    第k个数给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含两个整数n和k。第二行包含n个整数(所......
  • 2022.10.30每日一题
    DaimayuanOnlineJudge-出栈序列判断题目描述现在有一个栈,有\(n\)个元素,分别为\(1,2,…,n\)。我们可以通过push和pop操作,将这\(n\)个元素依次放入栈中,然后从栈......