?? toj_2939.cpp
字號:
#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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -