sunday_tutu 2015-05-10 14:15 采纳率: 100%
浏览 3584
已采纳

蓝桥杯试题格子刷油漆,求思路

标题:格子刷油漆图片说明

X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如图1所示),现需要把这些格子刷上保护漆。

你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!)

比如:a d b c e f 就是合格的刷漆顺序。

c e f d a b 是另一种合适的方案。

当已知 N 时,求总的方案数。当N较大时,结果会迅速增大,请把结果对 1000000007 (十亿零七) 取模。

输入数据为一个正整数(不大于1000)

输出数据为一个整数。

例如:
用户输入:
2
程序应该输出:
24

再例如:
用户输入:
3
程序应该输出:
96

再例如:
用户输入:
22
程序应该输出:
359635897

资源约定:
峰值内存消耗(含虚拟机) < 64M
CPU消耗 < 2000ms

  • 写回答

3条回答 默认 最新

  • mas_wang 2015-05-10 14:38
    关注

    这个问题要反过来想不合理的情况。其实很简单,只需要排除一种情况,就是有一列的两个都被刷了,而前面还有未刷的,这样就回不来了。比如例子中,如果c,d都被刷了,而a,b有一个或者两个都未刷,这时候如果已经移动到了e,f列中,就无法返回a,b了,就完成不了了。也就是说,如果前面有未刷的,那么就不能允许有一列的两格都被刷。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!