【2018年全国多校算法寒假训练营练习比赛(第四场)-D】小明的挖矿之旅

本文解析了2018年全国多校算法寒假训练营中的“小明的挖矿之旅”题目,通过判断格子下边或右边是否可通行来计算传送门数量,并给出了C++实现代码。

【2018年全国多校算法寒假训练营练习比赛(第四场)-D】小明的挖矿之旅

题目链接:https://www.nowcoder.com/acm/contest/76/D

做题时没注意到“无论出现在哪个格子”。。题中也没说明一个格子只能经过一次,其实没有想象的复杂。

判断如果点的下边或右边不能走,传送门数+1。特判只有一个‘.’传送门数为0

 

代码:

#include<bits/stdc++.h>
using namespace std;
char mp[1004][1004];
int main()
{
    int n, m, i, j;
    while(~scanf("%d%d", &m, &n))
    {
        int ans = 0, sum = 0;
        for(i = 0; i < m; i++) scanf("%s", mp[i]);
        for(i = 0; i < m ; i++)
            for(j = 0; j < n; j++)
            {
                if(mp[i][j] == '.')
                {
                    sum++;
                    if((mp[i+1][j] == '#' || i == m-1) && (mp[i][j+1] == '#' || j == n-1))
                        ans++;
                }
            }
        if(sum == 1) ans = 0;
        printf("%d\n", ans);
    }
    return 0;
}

 

posted @ 2018-02-15 12:21 LesRoad 阅读(...) 评论(...) 编辑 收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值