zoukankan      html  css  js  c++  java
  • uva 11375 Matches (递推)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2370

      一道递推的题。

      这道题的递推方程很容易可以想到,是枚举加上哪一个数字,把方法数累加起来。这道题主要是要注意前缀0的问题,可以通过枚举第一个数字不是一的所有情况,然后最后询问大于6的时候就加一。

    代码如下(JAVA):

     1 import java.math.BigInteger;
     2 import java.util.Scanner;
     3 
     4 public class Main {
     5     public static void main(String[] args) {
     6         final BigInteger ONE = new BigInteger("1");
     7         final int[] dg = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
     8         final int N = 2222;
     9         BigInteger pre[] = new BigInteger[N];
    10         for (int i = 1; i < N; i++) pre[i] = new BigInteger("0");
    11         pre[0] = ONE;
    12         for (int i = 0; i < 2100; i++) {
    13             for (int j = 0; j < 10; j++) {
    14                 if (i == 0 && j == 0) continue;
    15                 pre[i + dg[j]] = pre[i + dg[j]].add(pre[i]);
    16             }
    17             if (i > 0) pre[i] = pre[i].add(pre[i - 1]);
    18         }
    19         for (int i = 0; i < 6; i++) {
    20             pre[i] = pre[i].subtract(ONE);
    21         }
    22         Scanner in = new Scanner(System.in);
    23         while (in.hasNext()) {
    24             int n = in.nextInt();
    25             System.out.println(pre[n]);
    26         }
    27     }
    28 }
    View Code

    ——written by Lyon

  • 相关阅读:
    uva11552
    zoj3820 树的直径+二分
    hdu 5068 线段树加+dp
    zoj3822
    uva1424
    DAY 36 前端学习
    DAY 35 前端学习
    DAY 34 PYTHON入门
    DAY 33 PYTHON入门
    DAY 32 PYTHON入门
  • 原文地址:https://www.cnblogs.com/LyonLys/p/uva_11375_Lyon.html
Copyright © 2011-2022 走看看