//    uva 11357 Matches
//
// 题目大意:
//
// 给你n个火柴,用这n个火柴能表示的非负数有多少个,不能含有前导零
//
// 解题思路:
//
// f[i] 表示正好用i根火柴所能表示的整数的个数,则f[i + c[j]] += f[i];
// c[j] 为数字j所需要的火柴的数量,因为当j==0并且i==0的时候,我们不允许这样的
// 转移,因为i=0的时候不允许使用数字0,当n>=6时,再将0加上.我的理解是,当开始可以
// 用0的时候,那么后面的递推,就加上了前导零了,这样并不合法.而0的话我们只要在n>=6
// 的时候加上去就可以啦
//
// 感悟:
//
// 这道题,如果有前导零的话,那么我会这样的刷表法.f[i+c[j]] += f[i],但是
// 没有前导零的话,思索了许久,但是还是没有思路,原来可以在一开始的时候不把0
// 放入,即,不允许i==0的时候用上0,这样在累加的过程中,就不会有前导零,为什么
// 强调两遍呢,我觉得这就是精髓的所在。十分巧妙,继续加油吧~~~FIGHTING import java.util.*;
import java.io.*;
import java.math.BigInteger; class Main{ public static void main(String[] args){ final int MAX_N = ; BigInteger[] f = new BigInteger[]; int[] c = {,,,,,,,,,}; for (int i=;i<=;i++){
f[i] = new BigInteger("");
}
f[] = new BigInteger(""); for (int i=;i<=;i++){
for (int j=;j<;j++){
if (!(i == && j == ) && i + c[j] <= )
f[i+c[j]] = f[i+c[j]].add(f[i]);
}
} for (int i=;i<=;i++)
f[i] = f[i].add(f[i-]); int n;
Scanner sc = new Scanner(System.in);
while(sc.hasNextInt()){
n = sc.nextInt();
System.out.println(f[n].add( (n >= ? new BigInteger("") : new BigInteger(""))));
} } }

uva 11357 Matches的更多相关文章

  1. UVa 11375 - Matches

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

  2. uva 11375 Matches (递推)

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

  3. 【Java】【高精度】【递推】UVA - 11375 - Matches

    d[i+c[j]]+=d[i](c[j]是拼成j所需的火柴数) d[0]=1: 别忘了不能有前导零,所以当i为零时,不要尝试去拼成零.反而应该在n>=6时,最后给答案加1(单独拼出0). imp ...

  4. BigInteger

    首先上模板(不断更新中...)(根据刘汝佳AOAPCII修改) #include <iostream> #include <sstream> #include <cstd ...

  5. UVa 340 Master-Mind Hints (优化查找&复制数组)

    340 - Master-Mind Hints Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_on ...

  6. uva11357 Matches

    Matches UVA - 11375 题意: 给你n根matches, 你可以拼出多少个数字0~9. 不必全部用完. 解题思路: 1. 计数题, 本题可以用图来理解. 把"已经使用了i根m ...

  7. keil MDK error: L6236E: No section matches selector - no section 错误

    今天板子刚到,新建的第一个工程就报错了. .\Objects\cse.sct(7): error: L6236E: No section matches selector - no section t ...

  8. 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题

    解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题http ...

  9. HDU5456 Matches Puzzle Game(DP)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5456 Description As an exciting puzzle game for ...

随机推荐

  1. 通过反射绑定事件_Office Visio

    花了好几个小时才Try出来,记录一下: //反射获取Visio.Application,此处没有判断是否有安装Visio            mVisioType = System.Type.Get ...

  2. java操作数据库

    增加 public String addParent(Parent pp) { Connection conn=new ConntionUtil().openConnection(); Prepare ...

  3. ASP.NET ZERO 学习 HangFire的使用二

    之前在ABP配置好了HangFire环境之后,那么如何才能添加Job到HangFire中让其执行呢 这就需要参考ABP的Background Jobs and Workers, 参考路径:http:/ ...

  4. JavaScript的继承

    原型继承的实现 1 简化版本 function SuperClass(){...} function SubClass(){...} SubClass.prototype=new SuperClass ...

  5. Noip2016提高组 玩具谜题toy

    Day 1 T1 题目大意 一些naive的玩具小人把小南的眼镜藏起来,但小南有一份too simple的小纸条,告诉小南眼镜在第一个小人往哪数第几个的往哪数的第几个的往哪数第几个的往哪数的第几个的往 ...

  6. AFN框架内部结构

    AFN结构体 - NSURLConnection + AFURLConnectionOperation + AFHTTPRequestOperation + AFHTTPRequestOperatio ...

  7. webstorm11怎么设置成sublime3的界面

    引入架包导入即可 下载路径:https://github.com/OtaK/jetbrains-monokai-sublime

  8. (转)C#中键值对类型Hashtable与Dictionary比较和相关用法

    最近在使用C#中的Hashtable与Dictionary的时候,想知道其区别,通过查找网络相关博客资料,作出下列总结. Hashtable与Dictionary虽然都是作为键值对的载体,但是采用的是 ...

  9. [z]Java开发必会的Linux命令

    1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件. find . -name "*.xml" 递归查找所有的xm ...

  10. xlrd读取多个excel电子表数据

    import sys import xlrd import traceback def ReadData(FileName): try: workBook = xlrd.open_workbook(F ...