当前位置: 首页 > news >正文

P9803 [EC Final 2021] Beautiful String

我不会字符串.jpg

我们现在求的是 AABCAB 的出现次数。

我们优先统计这个 ABCAB,写个 \(lcp_{i,j}\) ,表示 \(i\)\(n\)\(j\)\(n\) 字符串的最长公共前缀。

我们现在枚举这个 AB 的出现位置,一个记作 \(i\),一个记作 \(j\),这两个所构成的 AB 的长度是在 \(\min(j-i-1,lcp_{i,j})\) 区间内的,直接枚举其长度并设为 \(l_1\)

现在我们只有一个 A 的长度不知道了,我们继续枚举它的长度 \(l_2<l_1\),现在就可以计算答案了。

\(\sum_{i=1}^n \sum_{j=i+1}^n \sum_{l_2=2}^{\min(j-i-1,lcp_{i,j})} \sum_{l_1=1}^{l_2-1} [lcp_{i-l_1,i} \geq l_1]\)

这个 \(i,j\) 省略不掉了,我们考虑优化后面那一坨,直接提出来,记 \(mn=\min(j-i-1,lcp_{i,j})\),现在就是要优化下面这个式子:

\(\sum_{l_2=2}^{mn} \sum_{l_1=1}^{l_2-1} [lcp_{i-l_1,i} \geq l_1]\)

于是化掉这个 \(l_2\),现在变成了, \(\sum_{l_1=1}^{mn-1} [lcp_{i-l_1,i} \geq l_1](mn-l_1)\)

注意到这个只与 \(mn,i\) 有关,你可以对于每个 \(i,mn\) 用个 \(n^2\) 预处理掉就行了。

预处理的方式就是先求出 \([lcp_{i-1,i} \geq 1] + [lcp_{i-2,i} \geq 2]...+[lcp_{1,i} \geq i-1]\)

这个时候你再做一遍前缀和就有我们要的东西了。

这个还算显然 (?)。

#include<bits/stdc++.h>
using namespace std;
int n,m,f[5011][5011],t;
long long ans,sm[5011][5011],ys[5011][5011];
string s;
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//	freopen("repeat.in", "r", stdin);
//	freopen("repeat.out", "w", stdout);cin>>t;while(t--){cin>>s;n=s.size();s=" "+s;memset(f,0,sizeof f);ans=0;for(int i=n;i>=1;i--){for(int j=n;j>=1;j--){if(s[i]==s[j]) f[i][j]=f[i+1][j+1]+1;}}for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){sm[i][j]=sm[i][j-1]+(f[i-j][i]>=j);}for(int j=i+1;j<=n;j++) sm[i][j]=sm[i][j-1];for(int j=1;j<=n;j++){ys[i][j]=ys[i][j-1]+sm[i][j];}}for(int i=2;i<=n;i++){for(int j=i+3;j<n;j++){int mn=min(f[i][j],j-i-1);if(mn<2) continue;ans=ans+ys[i][mn-1];}} cout<<ans<<"\n";}return 0;
}
http://www.sczhlp.com/news/78688/

相关文章:

  • B站python入门学习---第二阶段第一章类和对象
  • GDCPC2024 图
  • 25秋周日训练1
  • 外贸平台app下载网站页面大小优化怎么做
  • 湖北企业网站优化排名华夏名网修改网站信息
  • 他们怎么做的刷赞网站国内优秀的响应式网站
  • 石河子市建设局网站门户网站 流量
  • jsp做的零食网站下载优秀设计作品欣赏
  • 营销网站设计公司排名海南房产网
  • 乐山住房和城乡建设厅网站国家级建设网站
  • 阳江公司做网站青岛网站建站
  • 株洲外贸网站建设网站实现微信登录
  • 成都那家做网站好龙岗网站建设多少钱
  • 深圳住房和建设局网站全景看房如何建设一个生活服务网站
  • 使用 Spring Boot AOP 实现系统操作日志持久化
  • 软件工程第一次随笔
  • 解题报告-洛谷P13968 [VKOSHP 2024] Classics
  • 网络营销活动策划书网络优化工具app手机版
  • 关注江苏建设厅网站济南网站建设咨 询小七
  • 做书的网站有哪些内容学做宝宝衣服网站
  • 什么内容能提高网站流量建设银行网站怎么能转账
  • 古董做推广哪个网站好wordpress三栏模板下载
  • 一个炫酷的登录页面
  • 成立网站徐州建站推广
  • 枣庄市建设局网站东营区建设局网站
  • 兰州网站网站建设国际专线网络怎么申请
  • 手机主页网站哪个好用郑州中原网站建设
  • 北京网站平台开发wordpress 评论编辑器
  • 十堰微网站建设多少钱wordpress基于谷歌框架
  • 济南建设信用网网站o2o商业模式