2013 - ECJTU 暑期训练赛第四场-problem-A
来源:互联网 发布:exmail.qq.com 域名 编辑:程序博客网 时间:2024/05/19 18:40
A -A
Crawling in process...Crawling failedTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
假设有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.
然后包括N行数据,每行包括26个<=20的整数x1,x2,.....x26.
Output
对于每个测试实例,请输出能找到的总价值<=50的单词数,每个实例的输出占一行。
Sample Input
21 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 09 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
7379297简单母函数题,如果母函数不懂的可以看下我转载一篇:”母函数详解“哪里讲的很仔细AC代码+解释:#include<iostream>#include<cstring>const int MAX=100;int c1[MAX];//c1数组是存放系数 ,c1数组的标号是对应的指数,即c1[0]=1那个0就是指数为0的系数为1,而且指数代表就是组成的单词的价值 int c2[MAX];//是中间变量,说白了就是过渡用的,当一个中转站 int num[MAX];using namespace std;int main(){int n,m,i,j,sum;cin>>n;while(n--){for(i=1;i<=26;i++)cin>>num[i];memset(c1,0,sizeof(c1));memset(c2,0,sizeof(c2));c1[0]=1;//这里c1[0]赋值为1是因为任何多项式(只要有这多项式)乘指数为0的数后系数是不变的,前面因为初始化都为0,所以只要存在这个多项式乘了c1[0]后系数都是1(存在就是1,不存在也就可能相乘了就还是0了) for(i=1;i<=26;i++)//一共有多少个多项式,即几个多项式相乘 {for(j=0;j<=50;j++)//这里j是指数即与之相乘的指数,最大只能到50,上面说了指数代表单词的价值 {for(m=0;m<=num[i]&&j+m*i<=50;m++)//这里j+m*i是相乘后指数相加 {c2[j+m*i]+=c1[j];}}for(j=0;j<=50;j++){c1[j]=c2[j];//把过渡量再赋值给c1 c2[j]=0;//再初始化为0 }}sum=0;for(i=1;i<=50;i++)//把价值1到50全部加起来就是结果了 sum+=c1[i];cout<<sum<<endl;}return 0;}
- 2013 - ECJTU 暑期训练赛第四场-problem-A
- 2013 - ECJTU 暑期训练赛第四场-problem-C
- 2013 - ECJTU 暑期训练赛第四场-problem-L
- 2013 - ECJTU 暑期训练赛第四场-problem-F
- 2013 - ECJTU 暑期训练赛第四场-problem-B
- 2013 - ECJTU 暑期训练赛第四场-problem-I
- 2013 - ECJTU 暑期训练赛第四场-problem-J
- 2013 - ECJTU 暑期训练赛第二场-problem-A
- 2013 - ECJTU 暑期训练赛第五场-problem-A
- 2013 - ECJTU 暑期训练赛第七场-problem-A
- 2013 - ECJTU 暑期训练赛第八场-problem-A
- 2013 - ECJTU 暑期训练赛第二场-problem-E
- 2013 - ECJTU 暑期训练赛第二场-problem-G
- 2013 - ECJTU 暑期训练赛第二场-problem-H
- 2013 - ECJTU 暑期训练赛第二场-problem-J
- 2013 - ECJTU 暑期训练赛第三场-problem-B
- 2013 - ECJTU 暑期训练赛第三场-problem-E
- 2013 - ECJTU 暑期训练赛第三场-problem-D
- 如何发现一个合适的程序员
- hadoop,MapReduce的工作机制
- Tiny210(S5PV210) U-BOOT(三)----配置时钟频率源码分析
- 【Linux】Shell学习笔记之四——文件和目录管理(硬连接和软连接)
- HTTPSQS:基于HTTP协议的轻量级开源简单队列服务(安装php客户端)
- 2013 - ECJTU 暑期训练赛第四场-problem-A
- A Vision for Keystone
- C++ Primer 中文版 学习笔记(十一)
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
- 普通域用户如何远程登录server 2008域服务器
- (原创)malloc与free的小细节
- S3C2440中断控制器
- 第四届蓝桥杯C++本科B组决赛解题报告
- VC6.0中Tab控件的使用例程