傳送門:【hdu】4552 怪盜基德的挑戰書
題目分析:答案就是所有字尾和串s的lcp長度相加。字尾陣列搞定。
**如下:
#include #include #include using namespace std ;
typedef long long ll ;
#define rep( i , a , b ) for ( int i = ( a ) ; i < ( b ) ; ++ i )
#define for( i , a , b ) for ( int i = ( a ) ; i <= ( b ) ; ++ i )
#define rev( i , a , b ) for ( int i = ( a ) ; i >= ( b ) ; -- i )
#define clr( a , x ) memset ( a , x , sizeof a )
#define cpy( a , x ) memcpy ( a , x , sizeof a )
const int maxn = 100005 ;
char s[maxn] ;
int t1[maxn] , t2[maxn] , c[maxn] , xy[maxn] ;
int sa[maxn] , rank[maxn] , height[maxn] ;
int dp[maxn][17] ;
int cmp ( int *r , int a , int b , int d )
void getheight ( int n , int k = 0 )
}void da ( int n , int m = 128 )
getheight ( n - 1 ) ;
}void init_rmq ( int n ) }}
int rmq ( int x , int y )
int lcp ( int x , int y )
void solve ()
int main ()
上面的**用了rmq,但實際上是不需要的,那是我對字尾陣列的不了解造成的。其實只要從rank[0]向兩邊掃就ok了的。
**如下:
void solve ()
y = x + 1 , t = maxn ;
while ( y <= n )
printf ( "%d\n" , ans ) ;
}
HDU4552 怪盜基德的挑戰書
problem description 在樹最美麗的那天,當時間老人再次把大鐘平均分開時,我會降臨在燈火之城的金字塔前,帶走那最珍貴的笑容。這是怪盜基德盜取巴黎羅浮宮的 蒙娜麗莎的微笑 這幅畫時,挑戰書上的內容。但這次,怪盜基德的挑戰書上出現了一串串小寫字母 aaab sdfeeddd.柯南以小學生...
怪盜基德的挑戰書 HDU 4552
在樹最美麗的那天,當時間老人再次把大鐘平均分開時,我會降臨在燈火之城的金字塔前,帶走那最珍貴的笑容。這是怪盜基德盜取巴黎羅浮宮的 蒙娜麗莎的微笑 這幅畫時,挑戰書上的內容。但這次,怪盜基德的挑戰書上出現了一串串小寫字母 aaab sdfeeddd.柯南以小學生的眼睛,超凡高中生的頭腦,快速統計各種字...
NENU 怪盜基德的遊戲
description kid和新一開始玩乙個有趣的遊戲。遊戲規則是這樣的 在乙個n m棋盤中,某個位置有一顆棋子,並且有些位置是不能走的。現在兩個人輪流操作,每次可以將棋子向上下左右的格仔裡走一格,不能走出邊界。若一方不能行動,或者走到了已經走過的格仔,則算失敗。現在給出棋盤的初始狀態,柯南先行。...