题解 | #[SCOI2005]扫雷MINE#

[SCOI2005]扫雷MINE

https://ac.nowcoder.com/acm/problem/20241

题意 有个2*n的地图,规则和扫雷一样,第二列没雷,给定第二列的数,求有几种情况可以满足第二列
思路 后面有没有雷可以根据第一个数推出来,也是唯一的,所以最多只有两种可能
枚举即可,因为最后一个数也是只有两个地方相关,所以要特判

#include<iostream>
using namespace std;
int a[10010],b[10010];
int main()
{
    int n,ans=0;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    if(a[1]>=1)
    {
    b[1]=1;
        for(int i=2;i<=n;i++)
        {
            b[i]=a[i-1]-b[i-1]-b[i-2];
            if(b[i]>1||b[i]<0)
            {
                ans--;
                break;
            }
            if(i==n&&a[n]!=(b[n]+b[n-1]))
                ans--;
        }
        ans++;
    }
    b[1]=0;
     for(int i=2;i<=n;i++)
        {
            b[i]=a[i-1]-b[i-1]-b[i-2];
            if(b[i]>1||b[i]<0)
            {
                ans--;
                break;
            }
         if(i==n&&a[n]!=(b[n]+b[n-1]))
                ans--;
        }
        ans++;
    cout<<ans<<endl;

}
全部评论

相关推荐

01-15 22:15
已编辑
新余学院 C++
采集想要offer:专业技能那里要一条一条的列出来吧,感觉你项目很厉害了,但是如果你不写技术栈面试官对你项目不太懂的话都没办法问你八股😂C++都是基架岗,都是一群9✌🏻在卷,我觉得你要是有时间学个go把MySQL和redis写上去找个开发岗吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务