HDU2045 不容易系列之(3)—— LELE的RPG难题
来源:互联网 发布:app的蜂窝数据打不开 编辑:程序博客网 时间:2024/05/21 14:07
要注意的问题:1、使用long long存储结果,否则会越界
2、找规律:首先不管两头的颜色,即第一个可以有三种情况,其他每个因为不能和相邻的是相同的颜色,所以只有2种情况,所以一共有3*2^(n-1)种,但是这里面有不符合首尾不同色这个情况的所以我们要从中剔除这些,那么剔除多少呢?我们可以利用递推的思路来想,假设我们用solve(n)来表示有n个格子填色的种数,我们可以看作是n-1个格子在最后加上一个形成n个格子,那么solve(n)+solve(n-1)=3*2^(n-1)也就很简单得出了。
所以solve(n) = 3*2^(n-1) - solve(n-1)
#include <stdio.h>long long res[60];long long solve(int n) { if (res[n]) return (res[n]); if (n == 1) return (res[1] = 3); if (n == 2) return (res[2] = 6); int i; long long fact = 1; for (i = 1; i <= n - 1; ++ i) fact *= 2; return (res[n] = 3 * fact - solve(n - 1));}intmain(int argc, char **argv) { int n, i; while (scanf("%d", &n) == 1) { printf("%lld\n", solve(n)); } return 0;}
0 0
- hdu2045——不容易系列之(3)—— LELE的RPG难题
- 不容易系列之(3)—— LELE的RPG难题 hdu2045 递推
- hdu2045不容易系列之(3)—— LELE的RPG难题(推理式递推)
- hdu2045 不容易系列之(3)—— LELE的RPG难题
- HDU2045 不容易系列之(3)—— LELE的RPG难题
- hdu2045-不容易系列之(3)—— LELE的RPG难题
- hdu2045 不容易系列之(3)—— LELE的RPG难题
- hdu2045不容易系列之(3)—— LELE的RPG难题
- hdu2045不容易系列之(3)—— LELE的RPG难题(推理式递推)
- HDU2045 不容易系列之(3)—— LELE的RPG难题
- hdu2045不容易系列之(3)—— LELE的RPG难题
- HDU2045:不容易系列之(3)—— LELE的RPG难题
- hdu2045 不容易系列之(3)—— LELE的RPG难题 (动态规划)
- HDU2045不容易系列之(3)—— LELE的RPG难题
- HDU2045不容易系列之(3)—— LELE的RPG难题
- 不容易系列之(3)—— LELE的RPG难题(HDU2045)
- HDU2045不容易系列之(3)—— LELE的RPG难题
- HDU2045 不容易系列之(3)—— LELE的RPG难题
- 编程之美-求二进制1的个数
- phpcmsv9全站搜索,不限模型
- 用代码写storyboard自动布局
- poj 3278——Catch That Cow
- 当前月份日历
- HDU2045 不容易系列之(3)—— LELE的RPG难题
- 十款免费移动应用测试框架
- php中的设计模式之--适配器模式
- 将整篇word文档转成pdf
- Linux命令学习:find
- Window phone用手机来控制电脑的多媒体播放
- 如何学习一门编程语言
- VS2008开发WinCE程序编译速度慢的解决办法
- Andorid中的消息循环机制(一)