首页 > 其他分享 >Vjudge模拟小组

Vjudge模拟小组

时间:2024-03-08 15:38:01浏览次数:20  
标签:arr return divide int Vjudge 小组 ++ false 模拟

A - Flag of Berland

思路:

Code:

#include <bits/stdc++.h>
using namespace std;

const int N = 105;  

int n, m;
vector<string> s(N), ss(N);  

bool check(int n, int m) {
    if (n % 3) return false;
    int divide = n / 3;
    if (s[divide] == s[0] || s[divide * 2] == s[0] || s[divide] == s[divide * 2]) return false;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (s[i][j] != s[i / divide * divide][0]) return false; 
        }
    }
    return true;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> s[i];
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            ss[j].push_back(s[i][j]); 
        }
    }
    if (check(n, m)) {
        cout << "YES\n";
        return 0;
    }
    swap(n, m);
    s.clear(); // 清空字符串数组
    s.resize(n); // 重新设置大小
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            s[i].push_back(ss[i][j]); // 使用push_back函数向vector中添加元素
        }
    }
    if (check(n, m)) {
        cout << "YES\n";
    } else {
        cout << "NO\n";
    }
    return 0;
}

  

B - Darker and Darker

Code:

/* 
遍历所有的#统计最大即可简单bfs就行
 */
#include <bits/stdc++.h>
    
using namespace std; 
typedef pair<int, int> PII;
const int N = 1e3 + 5;

char arr[N][N]; 
int n, m, ans;
int dir[4][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}};

bool isVaild(int x, int y) {
    return x >= 1 && x <= n && y >= 1 && y <= m && arr[x][y] == '.';
}

queue<array<int, 3>> q;

void bfs() {
    while (!q.empty()) {
        auto [x, y, cnt] = q.front(); q.pop();
        for (int i = 0; i < 4; ++i) {
            int dx = x + dir[i][0];
            int dy = y + dir[i][1];
            if (isVaild(dx, dy)) { 
                arr[dx][dy] = '#';
                q.push({dx, dy, cnt + 1});
                ans = max(ans, cnt + 1);
            }
        }
    }
    cout << ans << '\n';
    return ;
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0);cout.tie(0);
    cout << fixed << setprecision(12);
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j<= m; j++) {
            cin >> arr[i][j];
            if (arr[i][j] == '#') {
                q.push({i, j, 0}); 
            }
        }
    }
    bfs();
    return 0;
}

  

标签:arr,return,divide,int,Vjudge,小组,++,false,模拟
From: https://www.cnblogs.com/youhualiuh/p/18061075

相关文章

  • 初三奥赛模拟测试1--T1回文
    初三奥赛模拟测试1--\(T1\)回文HZOI题意给定一个\(n\timesm\)的,由字符组成的矩阵\(A\),问你由\((1,1)\)开始,点\((i,j)\)只可以往\((i+1,j)\)和\((i,j+1)\)走,走到\((n,m)\)停。记录路径,问由路径上的字符构成的字符串能是回文串......
  • SSK:超级键盘模拟器,调用底层,可模拟所有按键
    SSK-吵架键盘模拟器SuperSimulatorofKeyboard调用系统底层,能够模拟所有键盘操作!本程序结合快Key(QuicKeys智能登录助手)一起使用,能够创造更多奇迹!【下载】点击下载 SSK:超级键盘模拟器:https://files.cnblogs.com/files/BigSystemsView/SSK-%E8%B6%85%E7%BA%A7%E9%94%A......
  • 前端页面使用js模拟ping命令
    letuserIpAddress='';//创建XMLHttpRequest对象varxhr=newXMLHttpRequest();xhr.open('GET','https://api.ipify.org/?format=json');//调用第三方API获取IP地址xhr.onload=function(){if(xhr.status===......
  • 模拟退火学习笔记
    模拟退火,优雅的暴力我认为有必要摘抄一下提单上的简介ZX写的前言:本片适用于模拟退火入门-进阶模拟退火(SA)是一种随机化算法。当一个问题的方案数量极大(甚至是无穷的)而且不是一个单峰函数时,我们常使用模拟退火求解。一般的,很多题都可以用模拟退火水过,在OI界称之[优雅的暴......
  • sql 模拟转账
    CREATEDATABASE`shop`CHARACTERSETutf8COLLATEutf8_general_ciCREATETABLE`account`( `id`INT(3)NOTNULLAUTO_INCREMENT, `name`VARCHAR(10)NOTNULL, `money`DECIMAL(9,2)NOTNULL, PRIMARYKEY(id))ENGINE=INNODBDEFAULTCHARSET=utf8​INSERTIN......
  • LY1154 [ 20230320 CQYC省选模拟赛 T1 ] 选拔士兵
    题意P和T各有\(n\)个课程。P的课程类型由\(a_i\)表示,价值为\(x_i\)。T的课程类型由\(b_i\)表示,价值为\(y_i\)。同样的课程不能上两遍。需要满足P和T的课程各在同一区间内。不选输出\([0,0]\),问使得价值最大的方案。Sol非常好数据结构题,使我的大脑旋转......
  • ADB模拟手机操作
    参考:Android模拟点击的四种方式https://blog.csdn.net/eclipsexys/article/details/38661237ADB控制模拟操作ADB中通过input来实现,用于输入 touch,key等事件:Thesourcesare:trackballjoysticktouchnavigationmousekeyboardga......
  • LY1162 [ 20230323 CQYC省选模拟赛 T3 ] 跳!跳!跳!
    题意给定\(n\)个长度为\(m\)的字符串,进行若干操作,求每个字符串\(S_a\)到\(S_b\)的方案数。另外,你还有一个模式串\(T\),由\({1,...,n}\)与\(0\)(通配符)组成。从\(S_x\)右边的串开始,不断向右移动,直到\(S_y\)与\(T\)匹配。从\(S_x\)左边的串开始,不断向左......
  • fiddler绑定mumu模拟器安装证书配置抓包使用
    1、在mumu模拟器的浏览器上,访问代理机器的ip加上8888回车,点击下载证书 2、找到mumu模拟器里的设置,找到证书,进行安装  3、证书安装完成之后,找到连接的wifi,点击配置代理为手动 4、以上配置完成就可以抓包成功啦 ......
  • LY1156 [ 20230320 CQYC省选模拟赛 T3 ] 集结
    题意平面上\(n\)个点,每个点按照曼哈顿距离移动。要求在\(m\)时刻后,所有点都处于同一位置。求方案数。Sol平凡地,考虑曼哈顿距离转切比雪夫距离。这样\(x\)和\(y\)就完全独立了。考虑先算\(x\)的贡献,再算\(y\)的贡献。判断一下是否能到当前的\(x\)或\(y\)就......