HDOJ 2069 Coin Change--母函数解法
来源:互联网 发布:windows 预览体验成员 编辑:程序博客网 时间:2024/06/05 20:31
HDACM2069
上次学会了用母函数来解决这种排列组合的问题,发现这一题也可用母函数来解决,不过要解决如何限制硬币数不超过100。经过一番测试,发现可以用二维数组来做,行的值表示硬币的和值,列的值表示和值为行的值的硬币的个数,这样就可以解决硬币数不超过100的问题。注意:要弄成静态的二维数组,也可以在while循环前定义二维数组并赋值。不然会Time Limit Exceeded!!!
import java.util.Scanner;public class Main{ static int[][] value = new int[251][101]; static int[][] temp = new int[251][101]; static{ int[] coin = {1,5,10,25,50}; for (int i = 0; i <= 250 ; i++) { if (i<101) { value[i][i] = 1; } } for (int i = 1; i < coin.length; i++) { for (int j = 0; j <= 250; j++) { for (int k = 0; k*coin[i]+j<=250; k++) { for (int l = 0; l <= 250 ; l++) { if (k+l<=100&&value[j][l]>0) { temp[k*coin[i]+j][k+l] += value[j][l]; } } } } for (int j = 0; j <= 250; j++) { for (int j2 = 0; j2 <= 100; j2++) { value[j][j2] = temp[j][j2]; temp[j][j2] = 0; } } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); int count = 0; for (int i = 0; i < 101; i++) { count += value[n][i]; } System.out.println(count); } }}
阅读全文
0 0
- HDOJ 2069 Coin Change--母函数解法
- hdoj 2069 Coin Change(母函数)
- HDOJ-2069 Coin Change(母函数)
- HDOJ 2069 Coin Change--百钱买百鸡解法
- hdoj 2069 Coin Change【母函数 加强版】
- HDOJ 2069 Coin Change 带限制条件的母函数
- HDOJ 2069 Coin Change
- HDOJ 2069 coin change
- HDOJ 2069 Coin Change
- HDOJ 2069 Coin Change
- hdoj 2069 Coin Change
- hdoj 2069 Coin Change 【母函数 不错的题】【限制 组合单位的个数】
- hdu 2069 Coin Change (母函数)
- [母函数]HDU 2069 Coin Change
- 【母函数】HDU-2069 Coin Change
- HDU 2069 Coin Change 母函数求解
- hdu 2069 Coin Change(母函数)
- HDU -- 2069 Coin Change 【母函数进阶】
- JAVA入门经典 笔记
- 【Sqlserver系列】CAST和CONVERT
- pata1086
- 【SqlServer系列】聚合函数
- 【Sqlsever系列】【SqlServer系列】日期和时间
- HDOJ 2069 Coin Change--母函数解法
- 【SqlServer系列】语法定义符号解析
- 【SqlServer系列】表达式(expression)
- 【SqlServer】JSON函数
- 【SqlServer系列】JSON数据
- 【Sqlserver系列】【转载】事物与锁
- 【Sqlserver系列】初级思维导图
- 【ASP.NET MVC】View与Controller之间传递数据
- 【Jquery系列】JqGrid参数详解