二维的kmp直接搞出来emmm, 后缀自动机都没这个快(本弱鸡不会后缀自动机)

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define re register
const int N=;
void read(int &a)
{
a=;
int d=;
char ch;
while(ch=getchar(),ch>''||ch<'')
if(ch=='-')
d=-;
a=ch-'';
while(ch=getchar(),ch>=''&&ch<='')
a=a*+ch-'';
a*=d;
}
void write(int x)
{
if(x<)
putchar(),x=-x;
if(x>)
write(x/);
putchar(x%+'');
}
char s[N];
int g[N][N],ans[N],n,T,f[N][N];
int main()
{
scanf("%s",s+);
n=strlen(s+);
for(re int i=;i<=n;i++)
for(re int j=;j<=n;j++)
if(s[i]==s[j])///相等就将前面的转移过来+1,算二维的KMP
f[i][j]=f[i-][j-]+;
for(re int i=n;i>=;i--)
for(re int j=n;j>=;j--)
if(s[i]==s[j])///同理
g[i][j]=g[i+][j+]+;
for(re int i=;i<=n;i++)///i=1只有一个字母,那么相同字母出现的个数就是答案
if(s[]==s[i])
ans[]++;
for(re int i=;i<=n;i++)
{
ans[i]=ans[i-];/// 上一个i分割的答案肯定我这个一个i也有(子串--)
for(re int j=i+;j<=n;j++)///算出从这个分割点开始后的所有答案
ans[i]+=min(f[i][j],j-i);
for(re int j=;j<i;j++)///把前面一个串自己相同的子串删除,因为自己不能跟自己比较
ans[i]-=min(g[i][j],i-j);
}
read(T);
while(T--)
{
int x;
read(x);
write(ans[x]);
putchar('\n');
}
return ;
}

Parco_Love_String的更多相关文章

  1. 2019年华南理工大学程序设计竞赛(春季赛) K Parco_Love_String(后缀自动机)找两个串的相同字串有多少

    https://ac.nowcoder.com/acm/contest/625/K 题意: 给出Q 个询问 i , 求 s[0..i-1] 与 s[i...len-1] 有多少相同的字串 分析: 给出 ...

随机推荐

  1. 如何导出chrome已安装的拓展程序

    如何导出chrome已安装的拓展程序 已安装的chrome插件可以在浏览区中输入*chrome://extensions*便可以查看插件列表. 对于windows系统来说,这些插件对应的目录为: C: ...

  2. 五分钟快速掌握RPC原理及实现

    随着公司规模的不断扩大,以及业务量的激增,单体应用逐步演化为服务/微服务的架构模式, 服务之间的调用大多采用rpc的方式调用,或者消息队列的方式进行解耦.几乎每个大厂都会创建自己的rpc框架,或者基于 ...

  3. SQL反模式学习笔记22 伪键洁癖,整理数据

    目标:整理数据,使不连续的主键Id数据记录变的连续. 反模式:填充断档的数据空缺. 1.不按照顺序分配编号 在插入新行时,通过遍历表,找到的第一个未分配的主键编号分配给新行,来代替原来自动分配的伪主键 ...

  4. Android+openCV 的坑

    之前一直用IntelliJ IDEA 导入 opencv_android_sdk 的 java 包,在最后一步finish时,始终出错. 后来重新安装Android Studio 重复以上步骤,能顺利 ...

  5. Xshell 连接 vmware中的CentOS 7

    参考内容:             Xshell 连接 CentOS 7 与 Ubuntu Server,http://www.linuxidc.com/Linux/2017-03/141333.ht ...

  6. mysql安装运行(centos)

    http://repo.mysql.com寻找需要的版本 wget -P /opt/downloads http://repo.mysql.com/mysql57-community-release- ...

  7. Stock Chase 拓扑

    题意 给出n个公司  m条信息 当某条信息构成环了  则这条信息是错误的 统计有多少个信息是错误的 这题是一条一条读入  虽然分在拓扑排序类里面 但是不会用拓扑排序来做 可以用floyd思想来做 如果 ...

  8. CCTV5 前端

    get :  fre = 11868  symbolrate  = 27500 pls_n=0------167    CCTV 9------------168    CCTV 3--------- ...

  9. (95)Wangdao.com_第二十八天_进度事件

    进度事件 进度事件 用来描述资源加载的进度, 主要由 AJAX 请求.<img>.<audio>.<video>.<style>.<link> ...

  10. Solve Error: MissingSchemaError: Schema hasn't been registered for model "YourModel".

    使用MongoDB的时候,如果遇到下面这个错误: /home/ec2-user/YourProject/node_modules/mongoose/lib/index.js: throw new mo ...