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条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制