技术笔记:SCU4484

简介: 技术笔记:SCU4484

The Graver Robbers' Chronicles


Description


One day, Kylin Zhang and Wu Xie are trapped in a graveyard. They find an ancient piece of parchment with a cipher string.


After discussion and analysis, they find the password is the total number of the cipher string's distinct substrings.


Although Kylin Zhang is powerful and always help his friends get rid of danger, this time he is helpless beacause


he is not good at math and programming.


As a smart Acmer, can you help them solve this problem so that they can escape from this horrible graveyard.


Input


The first line is an integer T stands for the number of test cases.


Then T test case follow.


For each test case there is one string.


Constraints:


T is no bigger than 30.


The length of string is no bigger than 50000.


Every string only contains lowercase letters.


Output


For each test case, output the answer in a single line. one number saying the number of distinct substrings.


Sample Input


2


aaaaa


cacac


Sample Output


5


9


Hint


For test case 2, the distinct substrings of 'cacac' are as follows:


len = 1 : c , a


len = 2 : ca , ac


len = 3 : cac , aca


len = 4 : caca , acac


len = 5 : cacac


Thus, total number of distinct substrings is 9.


分析:字符串的处理问题,查重的时候使用后缀数组就可以了。


算出总的子串 len(len+1)/2


再减去重复的 Height(i)


即可


套用了一下 大大的后缀数组模板,地址:


代码如下:


#include


#include


#include


#define LL long long


#define ULL unsigned long long


using namespace std;


const int MAXN=100010;


//以下为倍增算法求后缀数组


int wa【MAXN】,wb【MAXN】,wv【MAXN】,Ws【MAXN】;


int cmp(int //代码效果参考:http://www.lyjsj.net.cn/wz/art_23208.html

r,int a,int b,int l)

{return r【a】==r【b】&&r【a+l】==r【b+l】;}


/< 传入参数:str,sa,len+1,ASCII_MAX+1 /


void da(const char r【】,int sa【】,int n,int m)


{


int i,j,p,x=wa,y=wb,t;


for(i=0; i

for(i=0; i

for(i=1; i

for(i=n-1; i>=0; i--) sa【--Ws【x【i】】】=i;


/cout["SA"[endl;;


for(int i=0;i<n+1;i++)cout[sa【i】[' ';/


for(j=1,p=1; p

{


for(p=0,i=n-j; i

for(i=0; i=j) y【p++】=sa【i】-j;


for(i=0; i

for(i=0; i

for(i=0; i

//代码效果参考:http://www.lyjsj.net.cn/wz/art_23206.html

for(i=1; i

for(i=n-1; i>=0; i--) sa【--Ws【wv【i】】】=y【i】;


for(t=x,x=y,y=t,p=1,x【sa【0】】=0,i=1; i

x【sa【i】】=cmp(y,sa【i-1】,sa【i】,j)?p-1:p++;


}


return;


}


int sa【MAXN】,Rank【MAXN】,height【MAXN】;


//求height数组


/< str,sa,len /


void calheight(const char r,int sa,int n)


{


int i,j,k=0;


for(i=1; i<=n; i++) Rank【sa【i】】=i;


for(i=0; i

for(k?k--:0,j=sa【Rank【i】-1】; r【i+k】==r【j+k】; k++);


// Unified


for(int i=n;i>=1;--i) ++sa【i】,Rank【i】=Rank【i-1】;


}


int main()


{


char r【MAXN】;


int m,n,t;


LL H,ans;


cint;


while(t--)


{


cinr;


n=strlen(r);


m=127;


da(r,sa,n+1,m+1);


calheight(r,sa,n);


H=n;


ans=(H+1)H/2;


for(int i=2;i<=n;i++)


{


ans-=height【i】;


}


cout[ans[endl;


}


}

相关文章
|
7月前
|
弹性计算
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
2024年阿里云服务器的优惠价格新鲜出炉,有特惠云服务器也有普通优惠价格,本文为大家整理汇总了2024年阿里云服务器的优惠价格,包含特惠云服务器和其他配置云服务器的优惠价格。以便大家了解自己想购买的云服务器选择不同实例规格和带宽情况下的价格,仅供参考。
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
|
22天前
|
人工智能 弹性计算 编解码
阿里云GPU云服务器性能、应用场景及收费标准和活动价格参考
GPU云服务器作为阿里云提供的一种高性能计算服务,通过结合GPU与CPU的计算能力,为用户在人工智能、高性能计算等领域提供了强大的支持。其具备覆盖范围广、超强计算能力、网络性能出色等优势,且计费方式灵活多样,能够满足不同用户的需求。目前用户购买阿里云gpu云服务器gn5 规格族(P100-16G)、gn6i 规格族(T4-16G)、gn6v 规格族(V100-16G)有优惠,本文为大家详细介绍阿里云gpu云服务器的相关性能及收费标准与最新活动价格情况,以供参考和选择。
|
5月前
|
存储 固态存储 大数据
阿里云服务器实例、块存储、带宽收费标准与云服务器最新活动价格参考
阿里云服务器价格通常包括云服务器实例价格、块存储价格和带宽价格组成,云服务器不同实例规格收费标准不一样,选择不同类型的块存储收费标准也不一样,选择不同的带宽收费标准也不一样。现在阿里云轻量应用服务器2核4G4M峰值带宽298元1年,云服务器2核4G5M固定带宽199元1年、2核8G1M固定带宽652.32元1年、4核8G1M固定带宽955.58元1年、4核16G10M带宽100G ESSD Entry云盘70元1个月。本文为大家整理了目前阿里云服务器实例、块存储、带宽收费标准与云服务器最新的活动价格情况,以供参考。
阿里云服务器实例、块存储、带宽收费标准与云服务器最新活动价格参考
|
7月前
|
存储 人工智能 编解码
阿里云gpu云服务器最新收费标准、活动价格与实例规格选择参考
随着人工智能、高性能计算等领域的快速发展,GPU云服务器因其强大的计算能力和灵活的资源分配方式,成为越来越多企业和个人用户的首选。2024年,阿里云针对GPU云服务器推出了新的收费标准及活动,gn6v、gn7i、gn6i等实例的gpu云服务器有优惠,本文为大家介绍2024年,阿里云gpu云服务器最新收费标准、活动价格与实例规格选择参考。
阿里云gpu云服务器最新收费标准、活动价格与实例规格选择参考
|
7月前
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考,云服务器收费标准与实时活动价格整理
阿里云服务器租用价格参考,本文更新了阿里云服务器最新的租赁费用,包括云服务器实时的活动价格与云服务器收费标准。经济型e实例云服务器4核16G10M带宽配置30.00元/1个月、90.00元/3个月,独享型通用算力型u1实例2核4G服务器仅需199元1年,轻量云服务器2核2G新用户专享价格61元/1年,计算型c7a实例2核4G配置特惠价625.68元/1年。更多阿里云服务器热门配置活动价格及云服务器租赁费用及活动价格见下文。
阿里云服务器租用价格参考,云服务器收费标准与实时活动价格整理
|
7月前
|
存储 固态存储 NoSQL
阿里云企业级云服务器实例、云盘、带宽、镜像选择参考
对于许多初次接触云服务的用户来说,在购买阿里云服务器的时候,并不清楚应该如何选择适合自己的实例规格、云盘、带宽和镜像等配置,因为很多用户以往只用过物理服务器,对于阿里云企业级服务器的实例规格、云盘和带宽等不知道如何选择,本文为大家简单介绍一下阿里云企业级服务器应该如何选择这些参数。
阿里云企业级云服务器实例、云盘、带宽、镜像选择参考
|
7月前
|
弹性计算 固态存储 调度
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
7月前
|
弹性计算 大数据 测试技术
阿里云服务器服务费怎么计算?详细解析2024新版
阿里云服务器服务费怎么计算?详细解析2024新版,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月
138 1
|
7月前
|
弹性计算 数据库 对象存储
阿里云2024年开年采购优惠活动内容详细介绍及阿里云服务器租用配置价格表整理
阿里云在2024年开年推出了大规模的采购优惠活动,涵盖了其云服务器、云数据库、对象存储OSS、文件存储NAS以及无影云电脑等多项服务。其中,云服务器ECS和轻量应用服务器的优惠力度尤为引人注目。 对于云服务器ECS,阿里云推出了99计划,该计划下的2核2G3M带宽的服务器价格仅为99元一年,而2核4G5M带宽的服务器优惠价格为199元一年。这一优惠活动不仅针对新用户,老用户同样可以购买,并且续费价格也保持原价,不会涨价。
131 0
|
7月前
|
弹性计算 关系型数据库 MySQL
带你读《弹性计算技术指导及场景应用》——2. 免费试用ECS,轻松搭建WordPress博客平台使用
带你读《弹性计算技术指导及场景应用》——2. 免费试用ECS,轻松搭建WordPress博客平台使用
232 0