长度为n的方格,刷3种颜色的颜料,相邻的方格颜料颜色不能相同,且首尾方格颜色不能相同。每个方格必须涂色。计算一共有多少种涂色方式。

解题思路:(1)f(1)=3,f(2)=6,f(3)=6

    (2)如果有n个方格,当对第n个方格填色时,有两种情况:

     1)应该已经对前面n-1个方格填好了色,有f(n-1)种情况,此时第n-1个跟第一个颜色一定不一样,所以第n个只有一种选择。
     2)对前面n-2个方格填好色,有f(n-2)种情况,第n-1个空格颜色跟第一个颜色一样(否则就成了上面那种情况了),只有一种可能,最后第n个方格可以填两种颜色(因为n-1和1是第同种颜色),所以是 2*f(n-2);

可以推出f(n)=f(n-1)+2(n-2),n>=4;

long getSolutionNums(int n)
{
long[] nums = new long[51];
nums[0] = 3;
nums[1] = 6;
nums[2] = 6;
for(int i = 3; i < n; i++)
{
nums[i] = nums[i-1] + 2*nums[i-2];
}
return nums[n-1];
}

最新文章

  1. Git基本命令行操作 (转)
  2. 简单了解ddos攻击
  3. HDOJ 3177 Crixalis&amp;#39;s Equipment
  4. SPRING IN ACTION 第4版笔记-第五章BUILDING SPRING WEB APPLICATIONS-005-以path parameters的形式给action传参数(value=“{}”、@PathVariable)
  5. Python学习笔记:06魔法方法和迭代器
  6. Day56
  7. Minigui开发之遥控控制逻辑算法
  8. HDU1716(全排列)
  9. SVG如何做圆形图片
  10. 51nod_1714:B君的游戏(博弈 sg打表)
  11. 如何在linux下检测内存泄漏
  12. HashMap源码解读(jdk1.8)
  13. 互联网+ 何人能挡?带着你的Code飞奔吧!
  14. C# winform 打开主界面并关闭登录界面
  15. 【LeetCode】159. Longest Substring with At Most Two Distinct Characters
  16. iPhone 尺寸 iPhonex
  17. xshell提示必须安装最新的更新
  18. 【转】python:让源码更安全之将py编译成so
  19. 树上三角形 BZOJ3251
  20. petapoco 对存储过程的扩展 干货

热门文章

  1. centos7下 开启/关闭/查看firewall运行状态命令
  2. js模仿京东首页的倒计时功能
  3. 解决JS获取中文参数出现的乱码问题
  4. Kubernetes调整Node节点快速驱逐pod的时间
  5. libuv中实现tcp服务器
  6. Linux磁盘的分区操作
  7. HADOOP 之坑
  8. 避免重复提交?分布式服务的幂等性设计! 架构文摘 今天 点击蓝色“架构文摘”关注我哟 加个“星标”,每天上午 09:25,干货推送! 来源:https://www.cnblogs.com/QG-whz/p/10372458.html 作者:melonstreet
  9. 从零开始学Java (五)条件选择
  10. cocos2d-x 调试问题