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 |
TLE 是否说明 结果正确,只是时间上的不足?Source Problem Id:1628 User Id:IceAngel Memory:164K Time:1015MS Language:C++ Result:Time Limit Exceed Source #include "iostream.h" #include "string.h" #include "stdlib.h" #define max1 1100 #define max2 110 char graph1[max1][max2]; char graph2[max1][max2]; char map[max1][max2]; char flag[max1]; char str[max2]; int compare( const void * a , const void * b ) { int x = (int)(*(char*)a); int y = (int)(*(char*)b); if( x >= (int)'A' && x <= (int)'Z' ) x += 40; if( y >= (int)'A' && y <= (int)'Z' ) y += 40; return x - y; } bool strSub( int i , int k ) { int a , b; bool f; for( a = 0 ; a < (int)strlen( graph1[i] ) ; a++ ) { f = false; for( b = 0 ; b < (int)strlen( map[k] ) ; b++ ) if( graph1[i][a] == map[k][b] ) { f = true; } if( !f ) return false; } return true; } void strAdd( int k , int i ) { bool f; int a , b , c = strlen( map[k] ); for( a = 0 ; a < (int)strlen( graph2[a] ) ; a++ ) { f = true; for( b = 0 ; b < c ; b++ ) { if( graph2[i][a] == map[k][b] ) { f = false; break; } } if( f ) { map[k][c++] = graph2[i][a]; } } map[k][c] = 0; } int main() { bool breakFlag; int m , n; int i , k; cin >> m >> n; for( i = 0 ; i < m ; i++ ) cin >> graph1[i] >> str >> graph2[i]; for( i = 0 ; i < n ; i++ ) cin >> map[i]; for( k = 0 ; k < n ; k++ ) { for( i = 0 ; i < m ; i++ ) flag[i] = 0; do { breakFlag = true; for( i = 0 ; i < m ; i++ ) { if( strSub( i , k ) && flag[i] == 0 ) { flag[i] = 1; strAdd( k , i ); breakFlag = false; } } }while( !breakFlag ); qsort( map[k] , strlen( map[k] ) , sizeof( char ) , compare ); cout<<map[k]<<endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator