Code(组合数学)
2015-08-21 09:19
295 查看
Code
Time Limit: 1000MS Memory Limit: 30000K
Total Submissions: 8766 Accepted: 4168
Description
Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system is that one where a number is associated to a character sequence. It is considered that the words are made only of small characters of the English alphabet a,b,c, …, z (26 characters). From all these words we consider only those whose letters are in lexigraphical order (each character is smaller than the next character).
The coding system works like this:
• The words are arranged in the increasing order of their length.
• The words with the same length are arranged in lexicographical order (the order from the dictionary).
• We codify these words by their numbering, starting with a, as follows:
a - 1
b - 2
…
z - 26
ab - 27
…
az - 51
bc - 52
…
vwxyz - 83681
…
Specify for a given word if it can be codified according to this coding system. For the affirmative case specify its code.
Input
The only line contains a word. There are some constraints:
• The word is maximum 10 letters length
• The English alphabet has 26 characters.
Output
The output will contain the code of the given word, or 0 if the word can not be codified.
Sample Input
bf
Sample Output
55
Source
Romania OI 2002
大神博客
Time Limit: 1000MS Memory Limit: 30000K
Total Submissions: 8766 Accepted: 4168
Description
Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system is that one where a number is associated to a character sequence. It is considered that the words are made only of small characters of the English alphabet a,b,c, …, z (26 characters). From all these words we consider only those whose letters are in lexigraphical order (each character is smaller than the next character).
The coding system works like this:
• The words are arranged in the increasing order of their length.
• The words with the same length are arranged in lexicographical order (the order from the dictionary).
• We codify these words by their numbering, starting with a, as follows:
a - 1
b - 2
…
z - 26
ab - 27
…
az - 51
bc - 52
…
vwxyz - 83681
…
Specify for a given word if it can be codified according to this coding system. For the affirmative case specify its code.
Input
The only line contains a word. There are some constraints:
• The word is maximum 10 letters length
• The English alphabet has 26 characters.
Output
The output will contain the code of the given word, or 0 if the word can not be codified.
Sample Input
bf
Sample Output
55
Source
Romania OI 2002
大神博客
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <queue> #include <map> #include <algorithm> #define INF 0x3f3f3f3f using namespace std; typedef long long LL; const int MAX = 1e5+10; int Bin[35]; int c[33][33]; char str[20]; char ch; void ComBinnations()//打表,计算组合数 { for(int i=0; i<=32; i++) { for(int j=0; j<=i; j++) { if(!j||i==j) { c[i][j]=1; } else { c[i][j]=c[i-1][j]+c[i-1][j-1]; } } } c[0][0]=0; } int main() { int sum; bool flag; ComBinnations(); scanf("%s",str); int len=strlen(str); flag=false; for(int i=1; i<len; i++)//判断是否是合法字符 { if(str[i-1]>=str[i]) { printf("0\n"); flag=true; break; } } if(!flag) { sum=0; for(int i=1; i<len; i++)//计算比它小的字母排列 { sum+=c[26][i]; } for(int i=0; i<len; i++)//计算长度相等是字符的个数 { ch=!i?'a':str[i-1]+1; while(ch<str[i]) { sum+=c['z'-ch][len-i-1]; ch++; } } printf("%d\n",sum+1);//加上本身 } return 0; }
相关文章推荐
- 小谈导数、梯度和极值
- Phaser开源2d引擎 html5游戏框架中文简介
- Code(组合数学)
- 情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
- 年末最代码部分源码大出血分享-freemarker,bootstrap,springdata jpa分页代码
- 存储器层次结构
- 省市区js(可以得到省、市、区的行政代码和名称)
- codeforces 111B B. Petya and Divisors(数论)
- 2015-8,第二期培训跟进表
- Linux压缩与解压缩命令
- 剖析Python的Tornado框架中session支持的实现代码
- Hadoop技术内幕:深入解析MapReduce架构设计与实现原理
- Android之弹出多级菜单
- DOC命令删除文件和文件夹
- java泛型总结
- 猫猫学iOS 之第一次打开Xcode_git配置,git简单学习
- 本地机apache配置基于域名的虚拟主机详解
- 九度oj-1109-连通图
- Hibernate ORM 5.0 正式发布,支持 Java 8
- 在xcode 6.4 中设置 ios应用的状态栏的风格