wyh123
解题思路记录和牢骚
C++博客
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
随笔:34 文章:1 评论:1 引用:0
HDOJ 2045(递推)
题目大意:
人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:
有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.
以上就是著名的RPG难题.
如果你是Cole,我想你一定会想尽办法帮助LELE解决这个问题的;如果不是,看在众多漂亮的痛不欲生的Cole女的面子上,你也不会袖手旁观吧?
解题思路:分析到n的合法涂法总数:
1)n-1与1的颜色一样, 既然n-1与1同色,说明n-2一定不与1同色,那么,则对于第n个格子有两种涂色方法
即:2*f[n-2];
2)n-1与1的颜色不一样,那么,第n个格子的涂色方式只有一种
即:f[n-1]
3)f[n]=f[n-1]+2*f[n-2];
代码:
1
#include
<
iostream
>
2
#include
<
cstdio
>
3
#include
<
cstring
>
4
#include
<
cmath
>
5
6
using
namespace
std;
7
8
long
long
a[
100
];
9
int
n;
10
11
int
main()
12
{
13
a[
1
]
=
3
;
14
a[
2
]
=
6
;
15
a[
3
]
=
6
;
16
for
(
int
i
=
4
; i
<=
50
; i
++
)
17
a[i]
=
a[i
-
1
]
+
2
*
a[i
-
2
];
18
while
(
~
scanf(
"
%d
"
,
&
n))
19
{
20
cout
<<
a[n]
<<
endl;
21
}
22
return
0
;
23
}
24
发表于 2011-08-02 10:46
wyh
阅读(289)
评论(0)
编辑
收藏
引用
所属分类:
数学
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
poj 1971(数学题)
HDOJ 3823(素数)
HDOJ 3826(素数)
poj 1150(求末尾非0数字)
HDOJ 1286(欧拉函数)
HDOJ 1163(树根)
HDOJ 3003(大数取模)
HDOJ 2501(递推)
HDOJ 2045(递推)
HDOJ 2563(递推)
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2011年7月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
DP(8)
(rss)
比赛总结
(rss)
博弈
(rss)
二分
(rss)
模拟(3)
(rss)
数据结构
(rss)
数学(19)
(rss)
搜索(1)
(rss)
随笔档案
2011年8月 (19)
2011年7月 (15)
文章分类
DP
(rss)
模拟
(rss)
数据结构
(rss)
数论(1)
(rss)
搜索
(rss)
图论
(rss)
文章档案
2011年7月 (1)
搜索
最新评论
1. re: HDOJ 2067(DP)
压根就没有看懂题意的路过~~!
--wgh
阅读排行榜
1. poj 1015(DP)(1026)
2. HDOJ 2563(递推)(839)
3. poj 1029(模拟)(775)
4. HDOJ 1286(欧拉函数)(660)
5. poj 1042(DP)(650)
评论排行榜
1. HDOJ 2067(DP)(1)
2. HDOJ 2041(DP)(0)
3. 2011/7/31(0)
4. HDOJ 2044(DP)(0)
5. HDOJ 2563(递推)(0)