以poj 1743為例。模板中的基數排序基於前向星。
詳細證明過程詳見 演算法合集之《字尾陣列——處理字串的有力工具》。非常不錯的一篇**。
#include #include #include #include #include #include #include #include #include #include #include #pragma comment(linker, "/stack:1024000000");
#define eps (1e-6)
#define ll long long
#define ull unsigned long long
#define _ll __int64
#define inf 0x3f3f3f3f
#define mod 1000000007
using namespace std;
const int maxn = 20510;
int s[maxn];
int rank[2*maxn],sa[2*maxn],tr[2*maxn],high[maxn];
struct n
edge[2*maxn];
int tail[maxn],top;
inline void link(int u,int v)
void get_sa(int *s,int n)
for(k = 1;k <= n; k <<= 1)
top = n+1;
for(i = 1;i <= n; ++i)
link(rank[sa[i]],sa[i]);
site = 1;
for(i = 1;i <= n; ++i)
for(tr[sa[1]] = 1,i = 2,ans = 1;i <= n; ++i)
for(i = 1;i <= n; ++i)
rank[i] = tr[i];
if(ans >= n)
break;
}for(i = 1,k = 1;i <= n; ++i)
j = sa[rank[i]-1];
while(i+k <= n && j+k <= n && s[i+k] == s[j+k])
k++;
high[rank[i]] = k;
}//// for(i = 1;i <= n; ++i)
// printf("i = %2d sa = %2d rank = %2d high = %2d\n",i,sa[i],rank[i],high[i]);
//以上為rank。sa,high的構造過程
}bool check(int mid,int n)
else
l = sa[i],r = sa[i];
}return false;
}int main()
printf("%d\n",anw+1 < 5 ? 0 : anw+1);
}return 0;
}
初涉彙編《三》
在彙編 二 中我的說的問題,在這就不做回答了,因為乙個暫存器的來儲存資料肯定不夠用,因此,這些暫存器就可以提供空間。好了,這個彙編學習畢竟是我對彙編的個人的學習問題。現在我來說說彙編中後面的幾個標誌暫存器。標誌暫存器總共有9個,分別是cf,pf,af,zf,sf,tf,if,df,of 詳細解答,看...
React 初涉總結
來新公司開始用 react 已經兩個多月了,當然之前我對 react 也不是一無所知的,對 react 的基礎語法 jsx virtual dom 都是有一定的了解。之前用過 angular vue,對元件化開發都掌握的很熟練了,但 react 與 angular vue 還是有較大差異的,在使用 ...
axios使用初涉
看vue的時候,vue2.0推薦使用axios做http請求,今天就學一下axios基本使用。安裝 axios npm install axios 目前接觸到最多的就是 npm映象 安裝 映象定製命令cnpm npm install g cnpm registry cnpm install 模組名稱...