toj_2939.cpp
来自「Tianjin University Online Judge 的80多道题目 」· C++ 代码 · 共 44 行
CPP
44 行
#include<cstdio>#include<cstring>#define MAXLEN 100100#define MAXNUM 1000000007char s[ MAXLEN ] , len;int a[ MAXLEN ] , chP[ 255 ] , p[ MAXLEN ];int main(){ int i , j , k , testCase , tmp; char ch; scanf( "%d" , &testCase ); while ( testCase-- ){ scanf( "%s" , s ); len = strlen( s ); for( ch = 0; ch < 127; ch++ ) chP[ ch ] = -1; for( i = 1; i <= len ; i++ ){ p[ i ] = chP[ s[ i - 1 ] ]; chP[ s[ i - 1 ] ] = i; } a[ 0 ] = 1; a[ 1 ] = 2; for( i = 2; i <= len; i++ ){ if( p[ i ] == -1 ) tmp = 2 * a[ i - 1 ]; else tmp = 2 * a[ i - 1 ] - a[ p[ i ] - 1 ]; if( tmp >= MAXNUM ) tmp %= MAXNUM; a[ i ] = tmp; } printf( "%d\n" , a[ len ] ); } return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?