uva 11357 Matches
// 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的更多相关文章
- UVa 11375 - Matches
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- uva 11375 Matches (递推)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- 【Java】【高精度】【递推】UVA - 11375 - Matches
d[i+c[j]]+=d[i](c[j]是拼成j所需的火柴数) d[0]=1: 别忘了不能有前导零,所以当i为零时,不要尝试去拼成零.反而应该在n>=6时,最后给答案加1(单独拼出0). imp ...
- BigInteger
首先上模板(不断更新中...)(根据刘汝佳AOAPCII修改) #include <iostream> #include <sstream> #include <cstd ...
- UVa 340 Master-Mind Hints (优化查找&复制数组)
340 - Master-Mind Hints Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_on ...
- uva11357 Matches
Matches UVA - 11375 题意: 给你n根matches, 你可以拼出多少个数字0~9. 不必全部用完. 解题思路: 1. 计数题, 本题可以用图来理解. 把"已经使用了i根m ...
- keil MDK error: L6236E: No section matches selector - no section 错误
今天板子刚到,新建的第一个工程就报错了. .\Objects\cse.sct(7): error: L6236E: No section matches selector - no section t ...
- 解决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 ...
- HDU5456 Matches Puzzle Game(DP)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5456 Description As an exciting puzzle game for ...
随机推荐
- Android加载SD卡目录,文件夹遍历,图片设置,设置文件对应打开方式等
此案例主要说的是Android使用GridView加载SD卡下所有目录,文件夹多层遍历,文件图标修改,设置文件对应打开方式等功能. 如图: 代码: public class GridViewFile ...
- Ubuntu 查询 so 归属的 package
. . . . . 今天 LZ 在运行一个程序的时候,出现找不到 so 库的情况: >$ ./core ./core: error : cannot open shared object fil ...
- 自定义citationstyles(cls)文献引用模板
最近需要用国内某期刊的模板来写东西.所以需要自定义模板.国内的期刊主要遵循GB7714-2005的文献格式.对于经常使用Zotero.mendeley等免费的知识管理工具的同学,可以从这里获取cls模 ...
- ztree插件的使用
在bootstrap中使用ztree插件做树形架构,由于觉得原始的树形不够美观,所以改了其中的css插件 demo演示,以及各种属性的用法网站: http://www.treejs.cn/v3/de ...
- 用GUI完成了斗地主发牌
JAVA真的很强大,简单的步骤他自己就可以帮助我们解决了,简单,方便,并且还有着非常大的开发潜力
- Ant: Class not found: javac1.8
今天用ant,在选择build.xml,run as ant build后出错Ant: Class not found: javac1.8 分析问题:是否是eclipse中的ant版本和java的版本 ...
- sql脚本查询日期时间段日期
---列举指定时间月份DECLARE @date1 VARCHAR(10) , @date2 VARCHAR(10)SET @date1 = '2010-01-01'SET @date2 = '201 ...
- DLL强名称引用问题
为没有源码的DLL文件添加强名称 如果项目中引用了其他没有源码的dll文件,并且此dll文件是没有强名称的程序集,则编译时会出现类似 "Assembly generation failed ...
- 激活神器 KMSAuto Net 2015 v1.3.8
KMSAuto Net – Windows 操作系统 KMS 自动激活工具!支持 Windows Vista,7,8,8.1,10, Server 2008,2008 R2,2012,2012 R2, ...
- --with-http_realip_module选项(后台Nginx服务器记录原始客户端的IP地址 )
转自:http://blog.itpub.net/27043155/viewspace-734234/ 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如,X-Real-IP 或 X-For ...