| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:请教一下,偶的程序哪里写错了,总是TLEIn Reply To:请教一下,偶的程序哪里写错了,总是TLE Posted by:Maximum at 2006-01-23 01:26:03 > #include <stdio.h>
> #include <string.h>
> #include <ctype.h>
>
> char s[400001];
> int n;
>
> int next[40001];
> int nrec;
> int rec[40001];
>
> main() {
> int x; char ch;
>
> // freopen( "e.in", "r", stdin );
> // freopen( "e.out", "w", stdout );
>
> while( (ch = getchar()) != EOF ) {
> if( !islower(ch) ) break;
> n = 0;
> do {
> s[n++] = ch;
> ch = getchar();
> } while( islower(ch) );
> x = 0;
> for( int i = 1; i < n; i++ ) {
> while( x && s[i] != s[x] ) x = next[x];
> if( s[i] == s[x] ) x++;
> next[i] = x;
> }
> nrec = 0;
> for( x = n-1; x >= 0; x = next[x]-1 ) rec[nrec++] = x;
> for( int i = nrec-1; i >= 0; i-- ) printf( "%d ", rec[i]+1 );
> printf( "\n" );
> }
> }
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator