2018年10月24日提高组 T2 So many prefix?

news/2024/7/5 21:39:20

大意

给定一个串,求出所有偶数长度的前缀在串中出现次数的总和


思路

首先我们知道有个东西叫 k m p kmp kmp

它有一个 n e x t next next数组,意思是:对于字符串 S S S的前 i i i个字符构成的子串,既是它的后缀又是它的前缀的字符串中(它本身除外),最长的长度记作 n e x t [ i ] next[i] next[i]

发现跟上面那个玩意儿很像,但是上面那个要求是偶数的,所以我们只需要计算 i i i为偶数的情况然后求和即可


代码

#include<cstdio>
#include<cstring>
using namespace std;int kmp[200002],j,num[200002],n,ans;
char s[200002];
signed main()
{
	scanf("%s",s);
	n=strlen(s);
	for(register int i=1;i<n;i++)//kmp模板
	{
		while(j&&s[i]!=s[j]) j=kmp[j];
		j+=(s[i]==s[j]);
		kmp[i+1]=j;
	}
	for(register int i=1;i<=n;i++)
	{
		if(!(i&1)) ans++,num[i]++;//是偶数的情况下多了一个子串
		num[i]+=num[kmp[i]];//记得加上
		ans+=num[kmp[i]];//同理
	}
	printf("%d",ans);//输出
}

http://www.niftyadmin.cn/n/2679854.html

相关文章

String类下compareTo()方法

String类下compareTo()方法 比较两个字符串,依次对比两个字符串中字符的ASC码,两个字符的ASC码相等则继续比较下两个字符直至比较出不同的两个字符跳出方法.方法返回值类型为整型. 例如 String a "2345"; String b "2322"; 则a.compareTo(b)返回2 b.comp…

alert() 追加到节点的后面_jQuery中CSS简单操作(获取,追加,移除,切换,判断)【406】...

先看下面的动图&#xff0c;了解一下本例最后实现的效果。attr();本身是设置标签属性用的&#xff0c;这里用来设置样式和获取样式。addClass();这个是追加样式。removeClass();这是移除样式。toggleClass();这是切换样式&#xff0c;切换的意思很简单&#xff0c;有就删除&…

2018年10月24日提高组 T3 TRAVEL

大意 给定每个点之间连接道路的限制l,rl,rl,r&#xff0c;求出从1到nnn可以带走最大的区间&#xff0c;如果有多组解&#xff0c;输出字典序最小的一组 思路 首先很容易想到dfsdfsdfs #include<algorithm> #include<vector> #include<cstdio> #define ri …

Oracle PL/SQL 程序设计读书笔记 - 第15章 数据提取

Oracle PL/SQL 程序设计读书笔记 - 第15章 数据提取 Oracle PL/SQL 程序设计读书笔记 - 第15章 数据提取 每当在PL/SQL中执行一个SQL语句时&#xff0c;Oracle数据库都会为这个语句分配一个私有工作区&#xff0c;并在系统全局区&#xff08;SGA&#xff09;中管理该SQL语句指…

如何在jsp页面中引入css样式表文件和javascript文件

一&#xff1a;如何在jsp页面中引入css样式表文件? 1&#xff0c; 首先把写好的css样式表内容存为*.css格式。如style.css 2&#xff0c; 在页面中引入这个css 样式文件。用如下的方式引入。 <link rel"stylesheet" href"./css/style.css" type&qu…

七夕节(打表水题)

七夕节 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5086 Accepted Submission(s): 1785 Problem Description七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们…

2018年10月24日提高组模拟赛Week 6总结

第一题数论基础&#xff0c;第二题打了暴力&#xff0c;第三题也暴力&#xff0c;于是水了Rank3Rank3Rank3&#xff0c;不得不膜拜ssl_wycssl\_wycssl_wyc巨老200 T1 码灵鼠 https://blog.csdn.net/xuxiayang/article/details/83419505 占比方法0~100各种蒙分100数论基础T2 S…

通过程序一句话备份恢复SqlServer数据库

通过程序一句话备份恢复SqlServer数据库 备份语句&#xff1a;BACKUP DATABASE[__DataBaseName__] TO DISK N//LocalCoputerNameOrIP/ShareDocument/FileName.bat WITH INIT, NOUNLOAD,NOSKIP,STATS10, NOFORMAT 恢复语句&#xff1a;Restore DataBase[__DataBaseName__] fro…