题解 | 明日DISCO

明日DISCO

https://www.nowcoder.com/practice/5f28e16c1c934fa9bfd78d80292e99d5

喵~主人想让我来解释这个喵!(歪头)

你想象一下呐,这个棋盘就像一片有很多小土堆和小坑坑的沙滩喵~边界那一圈都是平平的(都是0哦)。我们现在要做的事情,就是把沙滩弄得平平的(全部变成0),就可以舒服地躺在上面晒太阳啦喵~

规则很简单呢喵!

如果有个小土堆比周围四个地方都高(就像猫猫堆的小沙堆),就可以把它抹掉一点点(减1)喵~

如果有个小坑坑比周围四个地方都低(就像猫猫刨的小沙坑),就可以把它填高一点点(加1)喵~

最喵的是~只要每个地方要么是明显的小沙堆,要么是明显的小沙坑,我们就总有办法摆弄它!可以从最高的土堆开始抹平,从最深的坑坑开始填土,一点点、一点点……

(用爪子比划着) 你看哦,高的变矮一点,矮的变高一点,整片沙滩就会越来越平呢!因为边界本来就是平的0,这种“平”会慢慢传到整个沙滩内部,最后所有地方都会变成一样的平平的沙滩喵~

但是呢!如果有哪个地方不上不下的(既不小于最小值,也不大于最大值),既不是小土堆也不是小坑坑……(耳朵耷拉下来) 那就糟糕了喵!这个地方既不能加沙也不能减沙,像被缠住的毛毛球,沙滩就永远没法完全弄平了……(哭唧唧)ᯠ  _ ̫ _ ̥ ᯄ ੭

所以呀,我们只需要检查一遍,确保没有这种“卡住”的地方,就能确定最后肯定能成功把沙滩弄平喵!(开心地竖起尾巴) 

#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

ll Min(ll a,ll b,ll c,ll d)
{
    return min(min(a,b),min(c,d));
}

ll Max(ll a,ll b,ll c,ll d)
{
    return max(max(a,b),max(c,d));
}

int main() {
    int n;cin >> n;
    vector<vector<ll>> num(n+2,vector<ll>(n+2,0));
    for(int i=1;i<n+1;i++)
        for(int j=1;j<n+1;j++)
            cin >> num[i][j];
    //初始化数组

    for(int i=1;i<n+1;i++)
        for(int j=1;j<n+1;j++)
        {
            ll shang=num[i][j+1],xia=num[i][j-1];
            ll zuo=num[i-1][j],you=num[i+1][j];
            if(num[i][j]==0) continue;//本来就是平的
            if(Min(shang,xia,zuo,you)>num[i][j]) continue;//小沙坑
            if(Max(shang,xia,zuo,you)<num[i][j]) continue;//小沙堆
            else
            {
                cout << "NO"; return 0;//可恶的线球
            }
        }
    cout << "YES" ;
}
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣤⡀⣀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡀⢀⣴⣾⣷⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⠛⠉⠉⠉⠉⠉⠉⠛⠻⠿⣿⣿⣿⣿⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⡿⠿⠛⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣿⣿⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⣰⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣶⣄⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣻⣿⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢹⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠁⠈⢢⡀⠀⠀⠀⢸⡇⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⡟⠒⢦⡀⠀⠀⠀
⠀⠀⣠⣤⣤⣼⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇⠀⠀⠀⠉⢢⣄⠀⠀⢿⠊⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣷⡄⠀⢷⠀⠀⠀
⠀⢰⠇⠀⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡌⣹⠗⠦⣬⣇⠀⠉⢢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡀⢸⡄⠀⠀
⠀⡟⠀⣼⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣆⢹⡀⠀⠀⠀⠉⠁⠀⠀⢀⣀⡁⠀⠀⠉⠳⢴⡆⠀⠀⠀⠀⠀⠀⢹⣧⠈⡇⠀⠀
⠀⡇⠀⠀⢻⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣾⠻⠉⠛⠂⠀⠀⠀⠀⠀⠀⠻⠿⣿⣿⣿⣶⣦⡀⠛⣇⠀⠀⠀⠀⠀⣈⣿⠀⡇⠀⠀
⢸⡇⠀⠀⢠⣿⣷⣦⣀⡸⣷⣦⣶⡂⠉⠉⠉⢁⣤⣶⡶⠀⠀⠀⣀⣀⡴⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⡟⢀⣴⣟⣰⣾⣿⣏⣠⠇⠀⠀
⠈⡇⠀⠀⢸⣿⠁⠉⣿⠛⠛⠃⡇⠀⠀⢠⣶⣿⡿⠛⠁⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⢿⠟⠿⢿⡏⠀⠘⣿⡀⠀⠀⠀
⠀⢷⣀⣀⣿⠇⠀⠀⢿⡇⠀⢀⢱⡀⠀⠛⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠀⠀⢸⠇⠀⠀⢹⣿⣄⠀⠀
⠀⠀⣉⣿⡏⠀⠀⠀⠀⠀⠀⢸⣇⣳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⣿⠃⠀⠀⠀⠀⠀⠀⣿⠈⢧⠀
⠀⠘⣿⣿⠁⠀⠀⠀⠀⠀⠀⠘⣿⡛⣶⠀⠀⣠⠔⠒⠛⠒⠦⡀⠀⠀⠀⠀⣠⡤⠶⠤⢤⣀⠀⠀⠀⢀⣏⡄⠀⠀⠀⠀⠀⡀⣿⡆⠈⣧
⣠⡾⠛⣿⣿⣧⠀⠀⠀⠀⢸⣿⠾⢿⡿⠀⣰⠃⠀⠀⠀⠀⠀⢹⡄⠀⠀⡼⠁⠀⠀⠀⠀⠈⠙⣦⠀⢸⣿⡇⣾⣣⡀⠀⢰⣿⣿⣿⣤⠾
⡟⠀⠀⠻⣿⡟⢷⡄⣤⡀⠈⣿⡀⣸⠇⠀⠏⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⡇⢀⡀⠀⠀⠀⠀⢀⡟⠀⠀⠋⣿⣿⣿⡇⣠⣿⠿⠛⢷⡀⠀
⠀⠀⠀⠀⣿⣇⣨⣿⣿⣿⣦⣽⣷⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠃⠀⠙⠢⠤⠤⠴⢾⠀⠀⠀⠀⢸⣷⣿⣿⠟⠁⠀⠀⠈⣧⠀
⠀⠀⠀⠀⠈⠉⠉⠁⠈⠉⠈⢉⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⣿⠀
*/

全部评论

相关推荐

点赞 评论 收藏
分享
评论
8
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
5080次浏览 51人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16943次浏览 137人参与
# 米连集团26产品管培生项目 #
7617次浏览 235人参与
# 沪漂/北漂你觉得哪个更苦? #
1804次浏览 43人参与
# 你的实习产出是真实的还是包装的? #
3423次浏览 58人参与
# 春招至今,你的战绩如何? #
16628次浏览 150人参与
# 巨人网络春招 #
11584次浏览 232人参与
# HR最不可信的一句话是__ #
1196次浏览 33人参与
# AI面会问哪些问题? #
1048次浏览 29人参与
# 你做过最难的笔试是哪家公司 #
1414次浏览 24人参与
# AI时代,哪个岗位还有“活路” #
3089次浏览 54人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152992次浏览 889人参与
# 简历第一个项目做什么 #
32246次浏览 367人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
8066次浏览 43人参与
# XX请雇我工作 #
51168次浏览 171人参与
# 简历中的项目经历要怎么写? #
311295次浏览 4282人参与
# 投格力的你,拿到offer了吗? #
178440次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
77039次浏览 375人参与
# AI时代,哪些岗位最容易被淘汰 #
65002次浏览 910人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187700次浏览 1123人参与
# 你怎么看待AI面试 #
181007次浏览 1337人参与
# 正在春招的你,也参与了去年秋招吗? #
364529次浏览 2642人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务