hdu 1085
来源:互联网 发布:淘宝客导购网站源码 编辑:程序博客网 时间:2024/06/05 17:07
题目大意:分别输入面额为1、2、5的硬币的数量。输出这些硬币不能组成的最小金额
解题思路:本题与1028的一个很大的区别就在于他的硬币的个数是固定。
硬币面额1,2,5且有数量限制num1,num2,num3,问最小不能组合的数量是多少。
G(x)=(1+x+...+x^num1)(1+x^2+...+x^2num2)(1+x^5+,,,+x^5num3),展开,系数不为0的数都是可以由硬币组合出来的。
代码如下:
/* * 1085_5.cpp * * Created on: 2013年8月9日 * Author: Administrator */ 章泽天是我的女神!!!女神!!!#include <stdio.h>#include <string.h>int maxval = 1*1000 + 2*1000 + 5*1000;int main(){int n1,n2,n3;bool f;while(scanf("%d%d%d",&n1,&n2,&n3),n1||n2||n3){int c1[maxval + 5],c2[maxval + 5],c3[maxval + 5];int i,j,k;memset(c1,0,sizeof(c1));memset(c2,0,sizeof(c2));memset(c3,0,sizeof(c3));for(i = 0 ; i <= n1 ; ++i ){c1[i] = 1;}for(j = 0 ; j <= n1 ; ++j){for(k = 0 ; k <= 2*n2 ; k +=2){c2[j+k] += c1[j];}}for( j = 0 ; j <= n1 + 2*n2 ; ++j){for( k = 0 ; k <= 5* n3 ; k+=5){c3[j+k] += c2[j];}}f = false;for( j = 0 ; j <= n1 + 2*n2 + 5*n3 ; ++j){if(c3[j] == 0){printf("%d\n",j);f = true;break;}}if(!f){printf("%d\n",n1 + 2*n2 + 5*n3+1);}}}
- hdu 1085
- HDU 1085
- HDU 1085
- hdu 1085
- HDU 1085
- HDU 1085
- HDU 1085
- hdu 1085
- hdu 1085
- HDU 1085
- HDU 1085
- hdu 1085
- hdu 1085
- hdu 1085
- hdu 1085
- hdu 1085
- hdu 1085
- 母函数的应用 :HDU 1028/ HDU 1328 / HDU 1085
- SPOJ 364 - Pocket Money(DP)
- 7zip抽取(extract)NSIS打包exe文件的小bug:一个名为eUseMenu.dll的会被错误抽取为$R0
- C#中的泛型
- Ant 标签说明 [转]
- 如何使用OCR识别控件LEADTOOLS OCR增强Google Drive搜索
- hdu 1085
- unity3D调用外接摄像头,并保持为图片
- 使用iOS手势UIGestureRecognizer
- Android中POST请求代码
- linux 内核移植 2.6.35.4 到s3c2440
- hdu(1533)Going Home(poj2195)
- UNIX常用命令详解及UNIX系统上的文本操作简介
- spring源码解读-加载解析配置文件
- 实际用户ID,有效用户ID与保存设置用户ID