栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1342 Word Index

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1342 Word Index

#include <stdio.h>#include <string.h>int  Count[ 6 ][ 27 ];char Data[ 6 ];void makelist( void ){    int i,j,k;    memset( Count, 0, sizeof( Count ) );    for ( i = 1 ; i <= 26 ; ++ i )        Count[ 1 ][ i ] = 1;    for ( i = 2 ; i <=  5 ; ++ i ) {        for ( j =  1  ; j <= 26 ; ++ j )        for ( k = j+1 ; k <= 26 ; ++ k ) Count[ i ][ j ] += Count[ i-1 ][ k ];     }}int calc( int s, int v, int L ){    int i,Sum = 0;    for ( i = s+1 ; i < v ; ++ i )        Sum += Count[ L ][ i ];    return Sum;}int number( char ch ){    return ch-'a'+1;}bool legal( int L ){    for ( int i = 1 ; i < L ; ++ i )        if ( Data[ i ] <= Data[ i-1 ] ) return false;    return true;}int main(){    makelist();    while ( ~scanf("%s",&Data[ 1 ]) ) {        int Len = strlen( &Data[ 1 ] );        if ( legal( Len ) ) { int i,j,Sum = 1; Data[ 0 ] = 'a'-2; for ( i = 1 ; i <= Len ; ++ i )      Sum += calc( number( Data[ i-1 ] ), number( Data[ i ] ), Len-i+1 ); for ( i = 1 ; i < Len ; ++ i ) for ( j = 1 ; j <= 26 ; ++ j )     Sum += Count[ i ][ j ]; printf("%dn",Sum);        }else printf("0n");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号