UOJ #219 [NOI2016 D1T1] 优秀的拆分 [95分]
来源:互联网 发布:批量写淘宝宝贝卖点 编辑:程序博客网 时间:2024/05/17 18:41
如果一个字符串可以被拆分为
例如,对于字符串 aabaabaa,如果令
一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分。比如我们令
现在给出一个长度为
以下事项需要注意:
- 出现在不同位置的相同子串,我们认为是不同的子串,它们的优秀拆分均会被记入答案。
- 在一个拆分中,允许出现
A=B 。例如 cccc 存在拆分A=B=c 。 - 字符串本身也是它的一个子串。
输入格式
每个输入文件包含多组数据。输入文件的第一行只有一个整数
接下来
输出格式
输出
样例一
input
4aabbbbccccccaabaabaabaabbaabaababaaba
output
3547
explanation
我们用
第一组数据中,共有
而剩下的子串不存在优秀的拆分,所以第一组数据的答案是
第二组数据中,有两类,总共
对于子串
对于子串
所以第二组数据的答案是
第三组数据中,
第四组数据中,
样例二
见样例数据下载。
样例三
见样例数据下载。
限制与约定
对于全部的测试点,保证
我们假定
时间限制:
空间限制:
下载
样例数据下载
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hash~
hash大法好!
95分O(n^2)做法:我们枚举中间位置i,然后求出它左右的aa的个数,左右相乘加入答案。
代码当然也是95的哼
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define ll long longconst int jin=27;int t,n,f[2001],kk[2001];ll l,r,now1,now2,ans;char s[2001];int main(){scanf("%d",&t);kk[0]=1;for(int i=1;i<=2000;i++) kk[i]=kk[i-1]*jin;while(t--){scanf("%s",s+1);ans=0;n=strlen(s+1);for(int i=1;i<=n;i++) f[i]=f[i-1]*jin+s[i]-'a';for(int i=2;i<n-1;i++){l=r=0;for(int j=i/2;j;j--){now1=f[i]-f[i-j]*kk[j];now2=f[i-j]-f[i-j*2]*kk[j];l+=(now1==now2);}for(int j=(n-i)/2;j;j--){now1=f[i+j]-f[i]*kk[j];now2=f[i+j*2]-f[i+j]*kk[j];r+=(now1==now2);}ans+=l*r;}printf("%lld\n",ans);}return 0;}
- UOJ #219 [NOI2016 D1T1] 优秀的拆分 [95分]
- [UOJ P219][NOI2016]优秀的拆分[95]
- 【NOI2016】优秀的拆分(95分)
- 【NOI2016】优秀的拆分
- NOI 2016 D1T1 优秀的拆分(80分)
- bzoj4650: [Noi2016]优秀的拆分
- 4650: [Noi2016]优秀的拆分
- 【后缀数组】[NOI2016]优秀的拆分
- bzoj 4650: [Noi2016]优秀的拆分
- BZOJ 4650([Noi2016]优秀的拆分-SA)
- NOI2016 优秀的拆分 后缀数组
- NOI2016 优秀的拆分 后缀数组
- NOI2016优秀的拆分 后缀数组
- [BZOJ4650][NOI2016]优秀的拆分-后缀数组
- [后缀数组] BZOJ4650: [Noi2016] 优秀的拆分
- Noi2016 D1 T1 优秀的拆分 90做法
- BZOJ 4650: [Noi2016]优秀的拆分 哈希+分块
- [BZOJ4650][NOI2016]优秀的拆分 各数据点解法
- Spring学习笔记(一)
- 知识图谱项目札记
- Centos7.1安装步骤图解
- iOS 获取手机倾斜角度
- 开发一个SSO服务器
- UOJ #219 [NOI2016 D1T1] 优秀的拆分 [95分]
- CVE-2017-6008浅析-HitmanPro内核池溢出漏洞(Win7)
- LoRa无线sx1278&LoraWan协议剖析
- QT的软件的下载地址
- 上最全的Unity面试题(含答案)
- 商业数据挖掘的应用场景和主题
- 论文阅读:Dual Learning for Machine Translation
- 今天开始保证每周一篇博客
- 操作系统概论整理一