【每日一题】6月19日题目精讲—扫雷

题号 NC20241
名称 [SCOI2005]扫雷MINE
来源 [SCOI2005]
戳我进入往期每日一题汇总贴~
往期每日一题二期题单

图片说明

如果你在题库做题时遇到了喜欢的题目,欢迎推荐给邓老师~ 点击查看详情

题解

因为第二列的情况已经确定了,那么我们只需要枚举第一列的第1个雷放还是不放,然后根据第二列第一个数就能确定第二列第二个位置放还是不放,依此类推,直到确定最后一行的情况,或者发现矛盾为止(方案数最多等于2,只要第一个格子确定了放不放雷,之后的就确定了)。

还有同学使用dp做法的,当前行第二列的数值显然与左边三个格子有关——i-1,i,i+1,又因为我们的状态是从上一行转移来,所以记录两个格子的情况就可以了,f[i][j][k]表示当前在第i行,当前行是不是雷,下一行是不是雷的方案数。
a[i]==0,当前行、这一行和上一行都不能是雷:
f[i][0][0]+=f[i-1][0][0];
a[i]==1,当前行、这一行和上一行只有一个是雷:
f[i][0][0]+=f[i-1][1][0];
f[i][1][0]+=f[i-1][0][1];
f[i][0][1]+=f[i-1][0][0];
a[i]==2,当前行、这一行和上一行有两个是雷:
f[i][1][1]+=f[i-1][0][1];
f[i][0][1]+=f[i-1][1][0];
f[i][1][0]+=f[i-1][1][1];
a[i]==3,当前行、这一行和上一行都是雷:
f[i][1][1]+=f[i-1][1][1];
最终的答案应该是f[n][0][0]+f[n][1][0].

活动奖励:

在牛客博客中写出题解,并回复地址
审核通过可获得(依据题目难度和题解的内容而定)

本道题目6月26日中午12:00之前写的题解有获得牛币资格~

.牛币兑换中心

全部评论
https://blog.nowcoder.net/n/1724c44473eb4d31b1ee9ad07f1818b7
1 回复 分享
发布于 2020-06-22 11:15
第一次占坑
点赞 回复 分享
发布于 2020-06-18 14:34
https://blog.nowcoder.net/n/f1e44b9bd0e74e3da01f8ff88fba9788
点赞 回复 分享
发布于 2020-06-18 14:53
https://blog.nowcoder.net/n/ed206801f8b144049e8b7bfc170e8195
点赞 回复 分享
发布于 2020-06-18 15:51
楼上tql,dp做法 https://blog.nowcoder.net/n/6c759266798343b7831472b54f69f1bd
点赞 回复 分享
发布于 2020-06-18 23:31
https://blog.nowcoder.net/n/49967fa6e8574f31afe06c2a73d4ec1f
点赞 回复 分享
发布于 2020-06-19 02:25
https://blog.nowcoder.net/n/eecf1f77e13b4e2ea95d319a300d0f77
点赞 回复 分享
发布于 2020-06-19 13:07
https://blog.nowcoder.net/n/b6346a0ec7e940fcab2863751789f84e
点赞 回复 分享
发布于 2020-06-19 20:06
https://blog.nowcoder.net/n/c4dd0f0e87b446309dabadc28ba7e71b
点赞 回复 分享
发布于 2020-06-27 17:14
https://blog.nowcoder.net/n/37a85e5a59eb46dcae58213010836b72
点赞 回复 分享
发布于 2020-07-11 16:23

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务