找单词

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4093    Accepted Submission(s): 2933

Problem Description
假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如ACM与CMA认为是同一个单词)。
Input
输入首先是一个整数N,代表测试实例的个数。
然后包括N行数据,每行包括26个<=20的整数x1,x2,.....x26.
Output
对于每个测试实例,请输出能找到的总价值<=50的单词数,每个实例的输出占一行。
Sample Input
2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 2 6 2 10 2 2 5 6 1 0 2 7 0 2 2 7 5 10 6 10 2 10 6 1 9
Sample Output
7 379297
Source
2006/1/15 ACM程序设计期末考试

Mean:

analyse:

经典的母函数运用题。

Time complexity:O(n^3)

Source code:

// Memory   Time
// 1347K     0MS
// by : Snarl_jsb
// 2014-09-18-13.40
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<string>
#include<climits>
#include<cmath>
#define N 1000010
#define LL long long
using namespace std;int cnt[100],c1[100],c2[100];
int main()
{ios_base::sync_with_stdio(false);cin.tie(0);
//    freopen("C:\\Users\\ASUS\\Desktop\\cin.cpp","r",stdin);
//    freopen("C:\\Users\\ASUS\\Desktop\\cout.cpp","w",stdout);int Cas;cin>>Cas;while(Cas--){for(int i=1;i<=26;++i)cin>>cnt[i];memset(c1,0,sizeof(c1));   //以防后面越界,最好全部赋值为0memset(c2,0,sizeof(c2));for(int i=0;i<=cnt[1]&&i<=50;++i)c1[i]=1;for(int i=2;i<=26;++i){for(int j=0;j<=50;++j){for(int k=0;k+j<=50&&k<=cnt[i]*i;k+=i){c2[k+j]+=c1[j];}}for(int j=0;j<=50;++j){c1[j]=c2[j];c2[j]=0;}}long long ans=0;for(int i=1;i<=50 ;++i)ans+=c1[i];cout<<ans<<endl;}return 0;
}

  

转载于:https://www.cnblogs.com/crazyacking/p/3979112.html

组合数学 - 母函数的运用 + 模板 --- hdu : 2082相关推荐

  1. 一道母函数的模板题 (hdu 2082)

    终于算弄明白母函数是什么东西了 = = , 呼~ 感觉它利用了高中学的二项式定理(就是用到组合数的那个) 完完全全的利用啊~~!以前用二项式求出最后那超长的x的表达式( 1 + C(n,1)*x^1 ...

  2. 母函数+例题(hdu 2079+hdu 2082)

    母函数+例题(hdu 2079+hdu 2082) 虽然ACM的确有点力不从心,但是还是贵在坚持,继续啃啃算法..... 昨天一个下午学了学母函数,离散数学+幂级数,只能说nb- 看了半天的原理,结果 ...

  3. [ACM] hdu 2082 找单词 (母函数)

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

  4. hdu 2082 找单词(母函数)

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  5. 最长上升子序列模板 hdu 1087 Super Jumping! Jumping! Jumping!

    Nowadays, a kind of chess game called "Super Jumping! Jumping! Jumping!" is very popular i ...

  6. 线段树模板hdu 1754:I Hate It

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. 生成函数(母函数)入门详解

    感谢大佬! 感谢大佬 本文章从以上两位大佬的博客参考而来!再次感谢! 母函数,又称生成函数,是ACM竞赛中经常使用的一种解题算法,常用来解决组合方面的题目. 在数学中,某个序列的母函数(Generat ...

  8. HDU 4635 Strongly connected(缩点、最多可加边数使得仍然非强连通)

    整理的算法模板合集: ACM模板 HDU 4635 Strongly connected Give a simple directed graph with N nodes and M edges. ...

  9. 我这才发现,原来我根本看不懂Java的正则表达式!

    正则表达式 (\w)((?=\1\1\1)(\1))+ (\w)((?=\1\1\1)(\1))+ 表达式说明: (\w) 表示匹配并捕获一个单词字符,将匹配内容作为第一个捕获组 (?=\1\1\1) ...

  10. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

最新文章

  1. java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
  2. 途牛+巨杉 诠释在线旅游与大数据结合
  3. 利用InfoPath实现SharePoint Server 2013列表的级联选择(Cascading Drop Down List)
  4. “智感超清”之HDR技术落地实践
  5. Visual Studio 2008 环境变量的配置(参考设置VS2010)
  6. 我今天对JavaFX的了解
  7. 简单JS实现对表的行的增删
  8. 国土空间适宜性评价与承载力评价之间的逻辑关系是什么?
  9. 图像处理算法工程师——1必备技能总结——2面试题大全
  10. 【密码专栏】动手计算双线性对(上)
  11. MTK7621 uboot编译与烧写
  12. sketchbook使用数位板,笔的鼠标右键无效
  13. UltraEdit(UE)主窗口颜色修改
  14. linux 截屏_如何在Linux上创建截屏视频
  15. /var/tmp/rpm-tmp. 安装失败时找不到tmp文件的应对方法
  16. JAVA 根据商品属性生成(SKU)规格算法
  17. Mac修改默认的电子邮箱客户端
  18. 【C++实现yolov5的OpenVINO部署_2】
  19. ChatGPT:那些让美国伟大的俄罗斯人
  20. 湖南大学python头歌实训-matplotlib

热门文章

  1. linux内核分析及应用 -- 输入输出(上)
  2. NUMA架构下的CPU拓扑
  3. pjsip代码分析(1)——modules框架
  4. 快速H.264编码算法的研究及实现
  5. ex is not shell_我使用过的Linux命令之exit - 退出当前shell
  6. 关于oracle的物理dg,单机上创建物理DG(Oracle 10g单实例)
  7. 怎么在pyqt界面上添加新菜单栏选项_PyQt创建菜单栏、工具栏
  8. mac mysql docker_docker学习(5) 在mac中创建mysql docker容器
  9. java读取串口设备信息_Java--串口之间的通信及扫描枪的读取
  10. python爬虫爬取图片代码_Python爬虫爬取煎蛋网图片代码实战