JZOJ 1598 文件修复
来源:互联网 发布:vscode 修改字体颜色 编辑:程序博客网 时间:2024/06/05 15:33
Description
有一个文件被破坏了,可是值得庆幸的是,只是文件的顺序被打乱了。文件仅包含大小写的拉丁字母以及逗号,句号和叹号。为了尽快修复,请你找出有多少个至少出现两次的子串。
比如字符串abbabc,子串”a”,”b”,”ab”分别出现了2次,3次,2次。
Analysis
这题是很水的SA了。
首先构造出height,然后至少出现两次的子串怎么算呢?
如下,有3个串
A:aba
B:aabbb
C:aabaaa
设当前做到B和C,B和C的LCT是3,也即会有aab,aa,a这三个串出现了两次以上,所以要把LCT(B,C)加进答案。
但是这样算会有重复,“a”在算LCT(A,B)时已经算过了。所以我们还要减去LCT(A,B)。
这个算法是正确的。因为后缀是排序好的,所以不可能会有这种情况:
A:a
B:aba
C:bab
D:abaa
E:abaaa
所以多次出现过的总会被减去。
Code
int main(){ scanf("%s",s+1); n=strlen(s+1); DA(); getheight(); int ans=0; fo(i,2,n) ans+=max(0,height[i]-height[i-1]); printf("%d",ans); return 0;}
0 0
- [JZOJ 1598]文件修复
- JZOJ 1598 文件修复
- JZOJ 1598. 文件修复
- 文件修复
- EXE文件关联修复
- 修复txt文件关联
- oracle修复日志文件
- 系统文件修复方法
- XP 系统文件修复
- chm文件关联修复
- exe文件关联修复
- 修复exe文件关联
- mysql 修复索引文件
- vmdk文件修复
- EXE文件关联修复
- Windows文件关联修复
- cue文件的修复
- word文件修复窍门
- ubuntu14.04下python+Theano+cuba7.5
- Google Play服务中的人脸检测
- 穷举法
- oc中的isa指针以及runtime
- 欢迎使用CSDN-markdown编辑器
- JZOJ 1598 文件修复
- 关于七牛云视频开发api
- iOS小技巧 - 判断设备版本
- linux解压缩命令tar
- iOS下Category添加属性字段
- 【华为机试题】和尚挑水
- iptables学习day-02
- 5.2 计数排序
- 基于netbean使用javamail的发送邮件的教程