(洛谷题目)为公开赛题目,P11033 【MX-X3-T0】「RiOI-4」宾果游戏

Hello大家好我是小亦也是好久没写题解了这次也来水一下入门题吧这道题呢来源于【MX-J4】梦熊周赛 · 入门组 4 & RiOI Round 4(同步赛)的题目,这道题也是AC了所以也来水水吧(已经够水了刚才说的)话不多说思路: 这个程序我首先定义了一个checkLine函数,用于检查一个给定的行或列是否全部为1(其实也没必要搞那么复杂的定义但是我就是喜欢这样(一身反骨))。然后在isBingo函数中,我们检查棋盘上的所有行、列以及两条对角线。如果找到任何一条线全部为1,则函数返回true,表示棋盘是宾果的。在main函数中,我们读取棋盘的输入,并调用isBingo函数来检查是否是宾果,然后输出相应的结果。额(这就是我大概的思路有错的可以纠正哈(#^.^#))代码的话(还是给吧复杂的就不给简单的(反骨)额就是发一下东西复杂了一点定义也是(#^.^#)(另外注释也写了ing)

#include <bits/stdc++.h>//非常喜欢用万能头因为它万能
using namespace std;

bool checkLine(const vector<int>& line) {
    for (int num : line) {
        if (num == 0) {
            return false;
        }
    }
    return true;
}

bool isBingo(const vector<vector<int>>& board) {
    // 检查每一行
    for (const auto& row : board) {
        if (checkLine(row)) {
            return true;
        }
    }
    // 检查每一列
    for (int j = 0; j < 5; ++j) {
        vector<int> column;
        for (int i = 0; i < 5; ++i) {
            column.push_back(board[i][j]);
        }
        if (checkLine(column)) {
            return true;
        }
    }
    // 检查主对角线
    if (checkLine({board[0][0], board[1][1], board[2][2], board[3][3], board[4][4]})) {
        return true;
    }
    // 检查反对角线
    if (checkLine({board[0][4], board[1][3], board[2][2], board[3][1], board[4][0]})) {
        return true;
    }
    return false;
}

int main() {
    vector<vector<int>> board(5, vector<int>(5));
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            cin >> board[i][j];
        }
    }
    if (isBingo(board)) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
    return 0;//好习惯(很多人不写)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值