P4503-[CTSC2014]企鹅QQ【字符串hash】

题目大意

给出nnn个长度为lll且互不相同的串,若两个串只有一个字符不相同那么这两个串相似。

求有多少对相似的串。


解题思路

我们可以枚举不相似的位,然后我们考虑字符串hashhashhash

然后我们可以将删掉了一位的字符串拆分为由[1..k−1][1..k-1][1..k1][k+1..l][k+1..l][k+1..l]组成的字符串。

我们先正着求一遍hashhashhash定为hashihash_ihashi,然后倒着求一遍hashhashhash定为dhashidhash_idhashi

然后删除第kkk位之后的hashhashhash值为hashk+dhashk∗pkhash_k+dhash_k*p^khashk+dhashkpk

然后排序统计即可。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ull unsigned long long
using namespace std;
const int N=30100,L=210;
const ull p=13331;
ull hash[N],hash1[N][L],hash2[N][L],pow;
int n,l,ans;
char s[N][L];
void work(int k)
{for(int i=1;i<=n;i++)hash[i]=hash1[i][k-1]+hash2[i][k+1]*pow;sort(hash+1,hash+1+n);hash[n+1]=23333333;int num=0;for(int i=1;i<=n;i++){num++;if(hash[i]!=hash[i+1])ans+=num*(num-1)/2,num=0;}
}
int main()
{scanf("%d%d%d",&n,&l,&pow);for(int i=1;i<=n;i++){scanf("%s",s[i]+1);for(int j=1;j<=l;j++)hash1[i][j]=hash1[i][j-1]*p+s[i][j];for(int j=l;j>=1;j--)hash2[i][j]=hash2[i][j+1]*p+s[i][j];}pow=1;for(int i=1;i<=l;i++)pow*=p,work(i);printf("%d",ans);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nssl1335-蛋糕切割【数论,GCD】

正题 题目大意 n∗mn*mn∗m的矩阵&#xff0c;求对角线经过多少个格子(经过格子内部才算)。 解题思路 FromZYCdalaoFrom\ ZYCdalaoFrom ZYCdalao的思路:::对于若(n,m)1(n,m)1(n,m)1(互质)则会经过nm−1nm-1nm−1个格子&#xff0c;所以我们可以将n∗mn*mn∗m拆分成gcd(n,m)gcd(…

使用Mono将C#编译运行至WebAssembly平台

因为所有的主流网页浏览器都支持WebAssembly&#xff0c;开发者们现在可以寻找一个新的平台来部署他们的应用程序。由WebAssembly团队提供的标准工具链仅能将C、C编译成为WebAssembly&#xff0c;然而这对使用其他编程语言的开发者们并没有什么帮助。C#开发者就幸运的多了&…

Dubbo(六)之属性配置

转载自 Dubbo属性配置 属性配置 以属性配置的方式来配置你的 Dubbo 应用 如果你的应用足够简单&#xff0c;例如&#xff0c;不需要多注册中心或多协议&#xff0c;并且需要在spring容器中共享配置&#xff0c;那么&#xff0c;我们可以直接使用 dubbo.properties 作为默认…

nssl1336-膜拜神牛【LIS】

正题 题目大意 序列AAA和序列BBB。一个子集SSS使得不存在 Ax≥Ay&amp;Bx≤By(x,y∈S)A_x\geq A_y\ \&amp;\ B_x\leq B_y(x,y\in S)Ax​≥Ay​ & Bx​≤By​(x,y∈S) 求子集最大大小 解题思路 很显然我们可以先排序然后变成LISLISLIS问题。 先按照AAA为第一关键字…

使用Docker分分钟启动常用应用

前言Docker是目前比较火的一个概念&#xff0c;同时也是微服务中比较关键的一个容器化技术。但是&#xff0c;单从理论上好难看出Docker的优势&#xff0c;因此&#xff0c;我希望在这篇文章中提供一些Docker的使用示例&#xff0c;希望从实际应用上帮助大家理解Docker的优势&a…

Dubbo(七)之自动加载环境变量

转载自 自动加载环境变量 在 Dubbo 中自动加载环境变量 从 2.7.3 版本开始&#xff0c;Dubbo 会自动从约定 key 中读取配置&#xff0c;并将配置以 Key-Value 的形式写入到URL中。 支持的 key 有以下两个&#xff1a; dubbo.labels&#xff0c;指定一些列配置到 URL 中的键…

nssl1337-矩形统计【单调栈】

正题 题目大意 一个n∗nn*nn∗n的矩阵&#xff0c;然后有些位置破损。求可以剪出多少个不破损的矩形。 解题思路 预处理upi,jup_{i,j}upi,j​表示从(i,j)(i,j)(i,j)向上多少格子都是非破损格子。 然后我们枚举下界LowLowLow&#xff0c;将图像变成一个下部平整的条形图&…

TypeScript 2.7 版本发布

TypeScript 2.7版本已经发布了&#xff0c;新增了几个主要功能特性并进行了一些bug的修正。其中一些亮点包括对类属性的赋值检查、固定长度的元组和改进对象文字的类型推断。总的来说&#xff0c;这个版本对类型系统、ES2015特性和总体的TypeScript开发者体验都进行了改进优化。…

Dubbo(八)之API 配置

转载自 DubboAPI 配置 以API 配置的方式来配置你的 Dubbo 应用 API 属性与配置项一对一&#xff0c;各属性含义&#xff0c;请参见&#xff1a;配置参考手册&#xff0c;比如&#xff1a;ApplicationConfig.setName("xxx") 对应 <dubbo:application name"…

nssl1338-逃亡路径【最短路计数,bfs】

正题 题目大意 n∗mn*mn∗m的格子&#xff0c;一个走"日"字形的马&#xff0c;从(1,1)(1,1)(1,1)走到(n,m)(n,m)(n,m)的最短路条数。 解题思路 模板最短路计数改一下即可 当然因为边权都为1所以这里改成了bfsbfsbfs codecodecode #include<cstdio> #include&…

Azure Functions + Azure Batch实现MP3音频转码方案

客户需求客户的环境是一个网络音乐播放系统&#xff0c;根据网络情况提供给手机用户收听各种码率的MP3歌曲&#xff0c;在客户没购买歌曲的情况下提供一个三十秒内的试听版本。这样一个系统非常明确地一个需求就是会定期需要将一批从音乐版商手中获取到的高比特率音乐文件转换成…

Springboot Mybatis多数据源配置MybatisProperties坑

一、场景复现 配置了两个数据源&#xff0c;查询Dao却报错表不存在。 &#xff08;1&#xff09;maven <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId> </dependency> …

nssl1351-矩形反色【离散,差分】

正题 题目大意 对一个全白矩阵每次选择一个矩阵颜色取反。 然后求最后所有黑色联通块的周长之和。 解题思路 因为是算周长&#xff0c;所以我们将一个矩阵拆分成4条边&#xff0c;然后将横竖分开处理。 若处理横的边&#xff0c;我们按照xxx为关键字排序。 然后对于xxx不同…

dotnet core webapi +vue 搭建前后端完全分离web架构(一)

架构服务端采用 dotnet core webapi前端采用: Vue router elementUIaxios问题使用前后端完全分离的架构&#xff0c;首先遇到的问题肯定是跨域访问。前后端可能不在同个server上&#xff0c;即使前后端处在同个server上&#xff0c;由于前后端完全分离&#xff0c;前后端使用…

SpringBoot使用日志

转载自 SpringBoot使用日志 1、选什么日志框架 首先列举一下日志门面和实现SpringBoot默认选用SLF4J和Logback日志级别&#xff1a;springboot默认已经帮我们配置好了日志&#xff0c;日志级别为trace<debug<info<warn<error默认的日志级别为inifo&#xff0c;日…

Dotnet Core Windows Service

在dotnet 中有topshelf 可以很方便的写windows 服务并且安装也是很方便的&#xff0c;命令行 运行.exe install 就直接把exe 程序安装成windows 服务。当然代码也要做相应的修改&#xff0c;具体的可以参照例子。在dotnet core 2.0 中 我们也有一个很方便的dll 来使用 https://…

P4549-[模板]裴蜀定理

正题 题目链接:https://www.luogu.org/problem/P4549 题目大意 一个整数序列AAA&#xff0c;一个整数序列XXX使得 ∑i1nAiXiS\sum_{i1}^n A_iX_iSi1∑n​Ai​Xi​S 求SSS可能的最小正整数值。 裴蜀定理 对于方程axbyS(x,y∈N)axbyS(x,y\in \mathbb{N}^)axbyS(x,y∈N) 的充要…

Dubbo(十)之配置加载流程

转载自 Dubbo配置加载流程 Dubbo 中的配置加载流程介绍 此篇文档主要讲在应用启动阶段&#xff0c;Dubbo框架如何将所需要的配置采集起来&#xff08;包括应用配置、注册中心配置、服务配置等&#xff09;&#xff0c;以完成服务的暴露和引用流程。 根据驱动方式的不同&…

.NET 文档数据库 RavenDB 4.0 发布

RavenDB 还有一个新的版本&#xff0c;RavenDB 4.0.0&#xff0c;一个ACID文档数据库&#xff0c;为数据操作中的高性能业务提供完全事务性的开源NoSQL解决方案。新版本更新了许多关键功能。平台Windows x64Windows x86Ubuntu 16.04 x64树莓派Docker&#xff08;Ubuntu 16.04和…

P5091-[模板]欧拉定理

正题 题目链接:https://www.luogu.org/problem/P5091 题目大意 求abmod&ThinSpace;&ThinSpace;ma^b\mod mabmodm 欧拉定理及扩展 欧拉定理: 对于(a,m)1(a,m)1(a,m)1那么有aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1(mod\ m)aφ(m)≡1(mod m) 扩展欧拉定理 ab≡{ab%φ…