题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=2082
题目描述:26个字母各有价值,分别是1到26;给出每个字母的个数,求单词价值不超过50 的单词有多少个;
                  本题的同类是换零钱:给出几种面值的硬币各有几个,求换50元钱有多少种换法;

题目要点:母函数;

母函数需要两个数组,一个数组记录当前的种类,一个数组作为临时数组辅助确定接下来有几种;

c1:1  0 0 0 0 0 0 0  00 .....(初始化)

c2:0 0 0 0 0 0 0 0 0 .....(初始化)

三层循环,第一层循环字母种类,第二曾循环使用该字母的个数;第三层循环取出该价值的字母后加到不同的价值上,生成新的价值;数组C1&C2的下标是价值,现将取出的字幕的价值总和加上之前已经取出的价值综合放到相应的c2数组;

两个数组中的值存放的是相应下标代表的价值到目前为止有几种方式;

代码如下:

 #include<stdio.h>
#include<string.h> int main()
{
int T,i,j,z;
int ans,c1[],c2[],ab[];
scanf("%d",&T);
while(T--)
{
for(i=;i<=;i++)
{
scanf("%d",&ab[i]);
}
memset(c1,,sizeof(c1));
memset(c2,,sizeof(c2));
c1[]=;
for(i=;i<=;i++)
{
for(j=;j<=ab[i];j++)
{
for(z=;z<;z++)
{
if(z+i*j>)//如果价值大于50 就没有必要在考虑了;
break;
c2[z+j*i]+=c1[z];//c1中存放的是种类数;将原有种类数加到现在新增的种类数上,得到一共的种类;
}
}
for(j=;j<;j++)
{
c1[j]+=c2[j]; //将c2中的种类数加回c1数组中;
}
memset(c2,,sizeof(c2));//c2数组清零;
}
ans=;
for(i=;i<;i++)
{
ans+=c1[i];
}
printf("%d\n",ans);
}
return ;
}

hdoj--2082<母函数>的更多相关文章

  1. HDOJ 2082 找单词 (母函数)

    找单词 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  2. HDU 2082 母函数模板题

    找单词 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status De ...

  3. HDU 2082 母函数法

    #include <cstdio> #include <cstring> using namespace std; ] , dp[][]; int main() { // fr ...

  4. HDOJ 1028 母函数分析

    #include<iostream>#include<cstring>using namespace std;int main(){    int c1[10000],c2[1 ...

  5. HDU 2082 找单词 (普通型 数量有限 母函数)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2082 找单词 Time Limit: 1000/1000 MS (Java/Others)    Me ...

  6. 组合数学 - 母函数的运用 + 模板 --- hdu : 2082

    找单词 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. HDOJ/HDU 1085 Holding Bin-Laden Captive!(非母函数求解)

    Problem Description We all know that Bin-Laden is a notorious terrorist, and he has disappeared for ...

  8. HDU 2082 找单词 (普通母函数)

    题目链接 Problem Description 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26.那么,对于 ...

  9. HDU 1028 整数拆分 HDU 2082 找单词 母函数

    生成函数(母函数) 母函数又称生成函数.定义是给出序列:a0,a1,a2,...ak,...an, 那么函数G(x)=a0+a1*x+a2*x2+....+ak*xk +...+an* xn  称为序 ...

  10. HDOJ 2189 悼念512汶川大地震遇难同胞——来生一起走 【母函数】

    题意:非常清楚不解释. 策略:如题. 就是个简单的母函数的改变. 这道题做了好久,才明确是那有毛病,还是理解的不够深刻. AC代码: #include<stdio.h> #include& ...

随机推荐

  1. ABNF语法

    http典型的请求场景 来自极客时间课件 http协议介绍 . [c:\~]$ telnet www.taohui.pub 80 Host 'www.taohui.pub' resolved to 1 ...

  2. 《大规模 web服务开发》笔记

    大规模服务:     可扩展,负载均衡,保证冗余,低运维成本,开发人数和开发方法的变化 数据处理:     磁盘—>内存—>缓存—>CPU 障碍:     持续增长的服务,”无法在内 ...

  3. 面向对象OO第一单元三次作业总结

    (一)第一单元的作业围绕着多项式的求导,从简单到复杂,主要的要求是 作业一:只有两种格式的因子:带符号整数(+02)和幂函数(x^+02). 作业二:在作业一的基础上添加了:sin(x)和cos(x) ...

  4. 遍历Map的两种方式

    取出map集合中所有元素的方式一:keySet()方法. 可以将map集合中的键都取出存放到set集合中.对set集合进行迭代.迭代完成,再通过get方法对获取到的键进行值的获取. Set keySe ...

  5. Unity学习之路——C#相关

    1.C#数组数组定义 int[] number; float[] score; string[] names;动态初始化,借助new运算符为数组元素分配空间int[] Array = new int[ ...

  6. classpath、WEB-INF

    classpath是指 WEB-INF文件夹下的classes目录(war包),对于springboot项目打包出来的jar包,里面的就是BOOT-INF: 这个demo的源码结构如下: 可见,jav ...

  7. Python 简单购物程序

    # Author:Eric Zhao# -*- coding:utf-8 -*-'''需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就 ...

  8. python爬虫集合

    逐渐也写了有二十余篇博文,内容一多就导致有些内容不能够方便快捷定位. 虽然博客有标签进行分类,实际查找时也并不如做一个同类文章的集合来得直观. 这里就对python爬虫相关博文做个集合: 爬虫基础知识 ...

  9. c++IDE

    暂时使用Code::Blocks 16.01. 因为之前没有c++编译器,所以去官网选择安装codeblocks-16.01mingw-setup.exe 然后settings>Compiler ...

  10. linux防火墙firewall使用简介

    1.firewalld的基本使用启动: systemctl start firewalld查看状态: systemctl status firewalld停止: systemctl disable f ...