$KMP$。

枚举每一个后缀,去原串中进行匹配,每次匹配到原串到$i$位置的后缀与这次枚举的后缀的前缀,更新答案。

#include<bits/stdc++.h>
using namespace std; int T;
char a[];
int len1,len2;
int nx[];
long long ans; void getNext(int x)
{
int j, k;
j = x;
k = x-;
nx[x] = x-;
while(j < len1)
if(k == x- || a[j] == a[k])
nx[++j] = ++k;
else
k = nx[k]; } void KMP_Index(int x)
{
int i = , j = x;
getNext(x); while(i < len1 )
{
if(j == x- || a[i] == a[j])
{
if(j!=x-)
{
long long B = (long long)(j-x+);
long long A = (long long)(i+-B);
long long C = (long long)(len2-B);
ans=ans^(A*B*B*C);
}
i++;
j++; }
else j = nx[j];
}
} int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%s",a);
len1 = strlen(a); ans=;
for(int i=; i<len1; i++)
{
len2 = len1-i;
memset(nx,,sizeof nx);
KMP_Index(i);
}
printf("%lld\n",ans);
}
return ;
}

BNUOJ 52516 Just A String的更多相关文章

  1. bnuoj 34985 Elegant String DP+矩阵快速幂

    题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=34985 We define a kind of strings as elegant s ...

  2. BNUOJ 34985 Elegant String 2014北京邀请赛E题 矩阵快速幂

    题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=34985 题目大意:问n长度的串用0~k的数字去填,有多少个串保证任意子串中不包含0~k的 ...

  3. BNUOJ 34990 Justice String

    Justice String Time Limit: 2000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java cla ...

  4. BNUOJ 52325 Increasing or Decreasing 数位dp

    传送门:BNUOJ 52325 Increasing or Decreasing题意:求[l,r]非递增和非递减序列的个数思路:数位dp,dp[pos][pre][status] pos:处理到第几位 ...

  5. bnuoj 24251 Counting Pair

    一道简单的规律题,画出二维表将数字分别相加可以发现很明显的对称性 题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=24251 #include< ...

  6. bnuoj 25659 A Famous City (单调栈)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=25659 #include <iostream> #include <stdio.h ...

  7. bnuoj 25662 A Famous Grid (构图+BFS)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=25662 #include <iostream> #include <stdio.h ...

  8. bnuoj 4209 Triangle(计算几何)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=4209 题意:如题 题解:公式直接计算,或者角平分线求交点 [code1]: #include < ...

  9. bnuoj 33656 J. C.S.I.: P15(图形搜索题)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=33656 [题解]:暴力搜索题 [code]: #include <iostream> # ...

随机推荐

  1. pthread在Qt+Windows下的使用

    pthread是牛逼的跨平台线程库,无需多介绍. 下载pthread-win32,解压后将x86里的pthreadVC2.dll放到system32目录里,将pthreadVC2.lib放入项目中去, ...

  2. Gogent相关问题的解决(不断更新)

    1:今天早上打开推特,发现进不去了,google浏览器一直提示404……找不到网址,真心郁闷.后来,查了查,才知道,最近google在北京的主干服务器被xx了,某些省就上不了了…… ……乱七八糟的不说 ...

  3. poj 3636

    Nested Dolls http://poj.org/problem?id=3636 Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  4. (一)Hadoop1.2.1安装——单节点方式和单机伪分布方式

    Hadoop1.2.1安装——单节点方式和单机伪分布方式 一.   需求部分 在Linux上安装Hadoop之前,需要先安装两个程序: 1)JDK 1.6(或更高版本).Hadoop是用Java编写的 ...

  5. CSS浏览器兼容问题集-第二部分

    11.高度不适应 高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin 或paddign 时.   例:  #box {background-color:# ...

  6. phpStudy 虚拟主机

    转载:http://blog.csdn.net/sinat_35861664/article/details/53557574 windows下配置虚拟主机,实现多域名访问本地项目目录 1.Apach ...

  7. 自定义li项目符号

    使用background-image属性 先清除ul的默认list-style ul{ list-style:none } li{ background-image:url('./image/symb ...

  8. JS 判断是否是微信浏览器 webview

    原理很简单,就是判断 ua 中是否有字段 “micromessenger" 代码如下: function isWechat () { var ua = window.navigator.us ...

  9. Axure RP 授权码

    Axure RP 8.1.0.3372Licensee:KoshyKey:wTADPqxn3KChzJxLmUr5jTTitCgsfRkftQQ1yIG9HmK83MYSm7GPxLREGn+Ii6x ...

  10. Web安全的三个攻防姿势

    原文地址:https://segmentfault.com/a/1190000011601837 作者: zwwill_木羽 关于Web安全的问题,是一个老生常谈的问题,作为离用户最近的一层,我们大前 ...