题目链接 : 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. 2018.4.3 Linux环境变量与变量

    环境变量与变量 shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,用户还可以重新定义这些变量. 环境变量可用命令env或set来查询.(DOS环境为set) 环境变量查询与显示 env ...

  2. Python Select模型

    IO多路复用 IO多路复用就是我们经常说的select epoll.select和epoll的好处是单个process就可以同时处理多个网络IO.基本原理是select\epoll会不断的轮询所负责的 ...

  3. BCB:WebBrowser 控件说明

      控件文件:system32\shdocvw.oca  shdocvw.dll 注册:regsvr32 shdocvw.dll WebBrowser 是 IE 内核做的 VB 控件, WebBrow ...

  4. echarts实现仪表盘(自己动起来,没有后端,顺便重温math.random

    let a = parseInt(Math.random() * (2 + 1), 10); let arr = []; arr.push(res[a]); let option = { toolti ...

  5. 使用的是html5的canvas将文字转换成图片

    当前功能的运用场景是:用户需要传文件给他人,在用户选择文件之后需要显示一个文件图标和所选文件的名称. 当前代码部分是摘自网上,但是已经忘记在什么地方获取的,如有侵权联系小弟后自当删除. 注意:必须在h ...

  6. javascript原生方法集锦

    1.sort方法sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码顺序排 ...

  7. 【转】MFC右键显示菜单之LoadMenu()

    如何在界面内单击右键弹出自己设置的菜单选项? 步骤如下: 1.在资源MENU里添加一个菜单资源,命名为IDR_POP_MENU. 2.在自己添加的菜单中添加事件,如事件1,事件2,事件3,分别添加响应 ...

  8. 字节跳动后端开发实习生面试(Python)

    一面: 1.自我介绍. 2.介绍“工大小美”项目相关. 3.Python中的GIL(全局解释器锁),以及哪种情况下使用python的多线程性能有较大的提升. 4.项目中用到了SQLite数据库,如果有 ...

  9. PHPStorm+XDebug进行调试图文教程

    这篇文章主要为大家详细介绍了PHPStorm+XDebug进行调试图文教程,内容很丰富,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 另外如果你们加载不出图片,另外的地址:转载地址https:// ...

  10. Python爬虫系列-Selenium详解

    自动化测试工具,支持多种浏览器.爬虫中主要用来解决JavaScript渲染的问题. 用法讲解 模拟百度搜索网站过程: from selenium import webdriver from selen ...