您的位置:首页 > 其它

poj 1850 Code 1496 Word Index

2012-08-06 16:50 344 查看
这个题是组合题:

View Code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<set>
#include<map>
#include<cstring>
#include<vector>
#include<string>
#define LL long long
using namespace std;
void Init( int c[][27] )
{
for( int i = 0 ; i < 27; i ++ )
for( int j = 0 ;  j <= i ; j ++ )
{
if( j == 0 || i == j ) c[i][j] = 1;
else c[i][j] = c[i-1][j-1] + c[i-1][j];
}
c[0][0] = 0;
}
int main(  )
{
int c[27][27];
char str[12];
Init( c );
while( scanf( "%s",str )==1 )
{
int len = strlen( str ),flag = 0;
for( int i = 1; i < len ; i ++ )
{
if( str[i] < str[i-1] )
{
flag = 1;
puts( "0" ); return 0;
}
}
int sum = 0;
for( int i = 1 ; i < len ; i ++ )
sum += c[26][i];
for( int i = 0 ; i < len ; i++ )
{
char s = i==0?'a':str[i-1] + 1;
while( s < str[i] )
{
sum += c['z'-s][len-i-1];
s++;
}
}
printf( "%d\n",++sum );
}
//system( "pause" );
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: