博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(SPOJ687,后缀数组)
阅读量:6678 次
发布时间:2019-06-25

本文共 1707 字,大约阅读时间需要 5 分钟。

Time Limit: 1000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu

Description

Given a string, we need to find the total number of its distinct substrings.

Input

T- number of test cases. T<=20;

Each test case consists of one string, whose length is <= 1000

Output

For each test case output one number saying the number of distinct substrings.

Example

Sample Input:

2
CCCCC
ABABA

Sample Output:

5
9

Explanation for the testcase with string ABABA: 

len=1 : A,B
len=2 : AB,BA
len=3 : ABA,BAB
len=4 : ABAB,BABA
len=5 : ABABA
Thus, total number of distinct substrings is 9.

Source

 
后缀数组裸题。。。代码真不好记。。所以背下来了。。
 
1 #include
2 #include
3 #include
4 using namespace std; 5 6 #define maxn 50001 7 #define rep(i,n) for(int i=0;i
=0;i--)10 11 int wa[maxn],wb[maxn],cnt[maxn],tx[maxn];12 int cmp(int *r,int a,int b,int l){13 return r[a]==r[b]&&r[a+l]==r[b+l];14 }15 void BuildSA(int *r,int *sa,int n,int m){16 int i,d,p,*x=wa,*id=wb,*t;17 rep(i,m) cnt[i]=0;18 rep(i,n) cnt[x[i]=r[i]]++;19 rep(i,m) cnt[i+1]+=cnt[i];20 down(i,n) sa[--cnt[x[i]]]=i;21 for(d=1,p=1;p
=d) id[p++]=sa[i]-d;24 rep(i,n) tx[i]=x[id[i]];25 rep(i,m) cnt[i]=0;26 rep(i,n) cnt[tx[i]]++;27 rep(i,m) cnt[i+1]+=cnt[i];28 down(i,n) sa[--cnt[tx[i]]]=id[i];29 swap(x,id);p=1;x[sa[0]]=0;30 Rep(i,n-1)31 x[sa[i]]=cmp(id,sa[i-1],sa[i],d)?(p-1):(p++);32 }33 }34 int rank[maxn],height[maxn];35 void CalHeight(int *r,int *sa,int n){36 int i,j,k=0;37 Rep(i,n) rank[sa[i]]=i;38 for(i=0;i

 

转载于:https://www.cnblogs.com/zjdx1998/p/3995564.html

你可能感兴趣的文章
英国脱欧对中国光伏产业的短期及长期影响
查看>>
Consensus Attention-based Neural Networks for Chinese Reading
查看>>
英国NPCC称网络摄像头勒索案件数量急剧增加 四起自杀事件与此有关
查看>>
TCTF:鹅厂的“黑客游戏”上线
查看>>
Kief Morris:实现基础设施即代码
查看>>
《Drupal实战》——2.3 为图书添加对应的字段
查看>>
《Android和PHP开发最佳实践》一1.4 小结
查看>>
光伏发电与“鸭子曲线”
查看>>
博鳌直击 | 业界大佬激辩金融科技:互联网金融并不是翻牌就可以叫Fintech
查看>>
Amdocs将成为AT&T ECOMP平台的集成商
查看>>
热带地区数据中心需要太阳能发电,而不是自然冷却
查看>>
炙手可热的威胁情报!飞塔已应用了15年
查看>>
2015年度互联网安全报告发布 移动支付成重灾区
查看>>
数百亿美元半导体设备投资 如何避免被海外大厂瓜分?
查看>>
黑客测试有望提高智能家居安全性?
查看>>
思科推NCS4200家族 与Ciena竞争Verizon城域订单
查看>>
易成新能28亿驰援赛维破产重整 试水另类“债转股”
查看>>
医疗信息安全马虎不得
查看>>
智慧城市需依托社会共建
查看>>
中国首个LTE IoT多模外场测试启动 多模成物联网时代主旋律
查看>>