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

对于这个题,我一开始没什么思路,后来通过各种方法才寻得算法才发现这就是个大水题。下面上我的思路:
第一步,考虑第n个放什么,第1个,第n-1个不能与其相同是不是。那么这样就错了,, HDU2045不容易系列之(3)—— <wbr>LELE的RPG难题 HDU2045不容易系列之(3)—— <wbr>LELE的RPG难题其实我们应该考虑第n-1个放什么,这样 第1格要和第n-1格不同,也要与第n格不同。也就是说,第1、n-1、n互不相同。那么,此种情况下第n格只有1种涂法。涂法数为f(n-1)*1,也就是f(n-1)。是不是很惊讶?然而惊讶的是,我们并没有就此结束, 我们让第1格和第n-1格颜色相同。这使得n-2格的涂法不受n-1格涂法的限制,那么是不是就是f(n-2)再加上我们第n格现在只要和第n-1格不同就可以那么就是f(n-2)*2?对吧。所以综合两种考虑那么f(n)=f(n-1)+2f(n-2)下面是代码:

import java.util.*;
class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
 int N=sc.nextInt();
 long[] a=new long[51];
 a[1]=3;
 a[2]=6;
 a[3]=6;
 for(int i=4;i<51;i++){
   a[i]=a[i-1]+2*a[i-2];
 }
 System.out.println(a[N]);
}
}
}

你可能感兴趣的:(ACM)