uoj 傳送門
題目大意:給出一串字串,求它的子串中形如aabb的方案個數。
90% len<=2000 ,o(n^2) 的做法可以過。
100% len<=30000, 蒟蒻不會啦。
o(n^2)的做法:
列舉中間點,求出兩邊形如aa的個數,相乘加入答案中。
#include
#include
#include
#include
#include
#define ll long long
#define mod 1000000009
#define base 163
#define m 30009
using
namespace
std;
int t,len;
ll hash[m],p[m],ans;
char a[2009];
ll get_hash(int l,int r)
int main()
for(int j=(len-i)/2;j;j--)
ans+=l*r;
}printf("%lld\n",ans);
}return
0;}
NOI2016 優秀的拆分 95分
uoj 傳送門 題目大意 給出一串字串,求它的子串中形如aabb的方案個數。90 len 2000 o n 2 的做法可以過。100 len 30000,蒟蒻不會啦。o n 2 的做法 列舉中間點,求出兩邊形如aa的個數,相乘加入答案中。include include include include...
NOI2016 優秀的拆分
看到題目,資料範圍有點怪異。對於95 的資料,對於100 的資料,意思是只有5分是正解。好吧,95pts的 很明顯,答案就是 而如何才能拿到100pts呢?我們可以先列舉a段的長度,很明顯每個長度為lcp,與往後求lcs,若 這樣就可以通過 include include include inclu...
NOI2016 優秀的拆分
題目實際上要求我們求從每個點出發的aa串的數量 考慮點i的答案,發現如果字首i與字首j j i 的最長公共字尾 i j,那麼i點出發向前就存在乙個長度為i j的aa串,題目即求對於每個字首,有多少個在他之前的字首滿足條件 考慮字尾自動機,由於每個字首都是字尾自動機parent樹上的一點,即兩個字首的...