动态规划1

来源:互联网 发布:php源码 鲶鱼 编辑:程序博客网 时间:2024/05/30 23:48
问题:一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,
否则这个字符串就是暗黑的。import java.util.Scanner;public class Test {static int h;public static void main(String[] args) {// TODO Auto-generated method stubScanner sc =new Scanner(System.in);int n=sc.nextInt();System.out.println(f(n));}public static int  f(int n){if(n==1){return 3;}if(n==2){return 9;}for(int i=3;i<=n;i++){h=2*f(i-1)+f(i-2);}return h;}}//牛人的代码package Day33;import java.util.Scanner;import java.lang.Math;import org.omg.PortableServer.Current; public class Main {    public static void main(String args[]){        Scanner sc = new Scanner(System.in);        int input = sc.nextInt();        System.out.println(System.currentTimeMillis());               long[] num = new long[input+1];//创建数组        num[1] = 3;        num[2] = 9;        for(int i=3; i<=input; i++){//使用动态规划来解决,在i=1和i=2时已经储存,是有备份的动态规划问题            num[i] = 2*num[i-1] + num[i-2];        }        System.out.println(num[input]);        System.out.println(System.currentTimeMillis());    }}


开始接触了动态规划问题感觉很酷炫。



原创粉丝点击