不容易系列之(3)—— LELE的RPG难题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 16913    Accepted Submission(s): 6742

Problem Description
人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:

有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.

以上就是著名的RPG难题.

如果你是Cole,我想你一定会想尽办法帮助LELE解决这个问题的;如果不是,看在众多漂亮的痛不欲生的Cole女的面子上,你也不会袖手旁观吧?

Input
输入数据包含多个测试实例,每个测试实例占一行,由一个整数N组成,(0<n<=50)。
 
Output
对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。
 
Sample Input
1 2
Sample Output
3 6
 
 
 
 【分析】:

1.也是一道递推找规律的题,首先易知f(1)=3;f(2)=6;f(3)=6;f(4)=18;

现在考虑n>3的情况,若第n-1个格子和第一个格子不同,则为f(n-1);

若第n-1个格子和第1个格子相同,则第n-2个格子和第一个格子必然不同,此时为f(n-2)再乘第n-1个格子的颜色数,很显然第n-1个格子可以是第一个格子(即第n-2个格子)的颜色外的另外两种,这样为2*f(n-2);

因此总的情况为f(n)=f(n-1)+2*f(n-2);

2.如果不考虑首尾颜色不同的话,那每次 a[i]=a[i-1]*2;
但是要考虑首尾不同,设a[i]是不考虑首尾不同的数组,那么考虑首尾不同的下标为i的数值为
a[i-1]中的首尾相同的部分*2  + a[i-1]中首尾不同部分*1
首尾不同的和首尾相同的之和等于a[i]且a[i-1]中首尾相同的部分等与a[i-2]中首尾首尾不同的部分。
 
3.考虑长为n的串。若前n-1位组成的串合法,则由于首尾不同,再添加一位时,只有1种颜色可选;若前n-1位组成的串不合法(首尾相同),那么前n-2位组成的串必须合法(因为最终要组成的n位是合法的)。此时第n位有2种颜色可选。故f(n)=f(n-1)+2*f(n-2)。
边界条件:f(1)=3,f(2)=f(3)=6。

PS:可用特征方程得出n>3时f(n)的封闭形式f(n)=2^n+2*(-1)^n。

4.a[i]=分两种,
  1) 前i-1首尾不同 ,个数刚好a[i-1]。
  2) 前i-1首尾相同 ,显然第一个与第i-2个颜色就不能相同了,个数刚好a[i-2], 但是此时最后一个可以取两种颜色。

5.分析到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];

#include <stdio.h>
int main()
{
int i,n;
__int64 a[51]={3,6,6};
for (i=3;i<51;i++)
a[i]=a[i-1]+a[i-2]*2;
while (scanf("%d",&n)!=EOF)
printf("%I64d\n",a[n-1]);
return 0;
}

  

HDU 2045 LELE的RPG难题(递推)的更多相关文章

  1. HDU 2045 LELE的RPG难题

    递推 枚举起点状态 #include <algorithm> #include <iostream> #include <cstring> #include < ...

  2. HDU 2045不easy系列之三LELE的RPG难题(趋向于DP的递推)

    不easy系列之(3)-- LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...

  3. HDU 2045 不容易系列之(3)—— LELE的RPG难题(递归/动态规划)

    不容易系列之(3)—— LELE的RPG难题 Problem Description 人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即" ...

  4. (杭电 2045)不容易系列之(3)—— LELE的RPG难题

    不容易系列之(3)-- LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...

  5. hdoj 2045 不容易系列之(3)—— LELE的RPG难题

    不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  6. [原]hdu2045 不容易系列三——LELE的RPG难题 (递推方程)

    本文出自:blog.csdn.net/svitter 原题:http://acm.hdu.edu.cn/showproblem.php?pid=2045 题意:中文不用我说了吧. 这个题目的关键就在于 ...

  7. A - 不容易系列之(3)―― LELE的RPG难题 简单递推

    人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研 ...

  8. 「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045)

    题目简述 有排成一行的n" role="presentation">nn个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何 ...

  9. Hdoj 2045.不容易系列之(3)—— LELE的RPG难题 题解

    Problem Description 人称"AC女之杀手"的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多"Cole"(LELE的粉丝,即"可乐 ...

随机推荐

  1. 习题:就是干(DP)

    洛谷2301 题目描述 眼看着老师大军浩浩荡荡的向机房前进.LOI 的同学们决定动用自己的力量来保卫他们的好朋友loidc.现在每个人都要挑选自己的武器——两根木棍.一根用做远距离投掷,另一根用做近距 ...

  2. 【bzoj4619】[Wf2016]Swap Space 贪心

    题目描述 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为了格式化,你需要买额外的硬盘.当然,你想要买容量最小的额外储存设备以便省 ...

  3. 【bzoj1018】[SHOI2008]堵塞的交通traffic 线段树区间合并+STL-set

    题目描述 给出一张2*n的网格图,初始每条边都是不连通的.多次改变一条边的连通性或询问两个点是否连通. 输入 第一行只有一个整数C,表示网格的列数.接下来若干行,每行为一条交通信息,以单独的一行“Ex ...

  4. 【bzoj2661】[BeiJing wc2012]连连看 最大费用最大流

    题目描述 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y ...

  5. SNMP协议介绍

    SNMP协议介绍 一.什么是SNMP SNMP:“简单网络管理协议”,用于网络管理的协议.SNMP用于网络设备的管理.SNMP的工作方式:管理员需要向设备获取数据,所以SNMP提供了 “读”操作:管理 ...

  6. 洛谷 P2501 [HAOI2006]数字序列 解题报告

    P2501 [HAOI2006]数字序列 题目描述 现在我们有一个长度为n的整数序列A.但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列.但是不希望改变过多的数,也不希望改变的幅度太大. ...

  7. 给DOM元素绑定click事件也有学问

    最简单的莫过于使用click方法: 1 <input id="btn" type="button" value="BUTTON" on ...

  8. (转)HTTP请求中URL地址的编码和解码

    HTTP请求中,类似   http%3A%2F%2Fwww.baidu.com%2Fcache%2Fuser%2Fhtml%2Fv3Jump.html  的地址 如何解码成    http://www ...

  9. Switf与OC混合开发流程

    看着身边越来越多的小伙伴转入Swift,本人也跟随潮流,转战Swift了~下面是初步写入的一个Swift项目框架. 1.创建项目,这个应该不用说了,语言swift 2.CocoaPods 导入第三方 ...

  10. mybatis的一些特殊符号标识(大于,小于,等于,不等于)

    特殊字符   替代符号(红色基本为常用的)    &            &      <            <      >            > ...