博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu_4503【题解】企鹅QQ 哈希
阅读量:4551 次
发布时间:2019-06-08

本文共 818 字,大约阅读时间需要 2 分钟。

题面:

可以用哈希来做。

因为题目说两两不重复所以更简单了。

正着一遍反着一遍。

枚举中间点求两边。

若相等则是相似。

不重复所以不用管中间这位。

代码如下。

#include
using namespace std;int n,l,s;const int maxn=3e4+2;char c[300];unsigned long long h1[maxn][300],h2[maxn][300],t[maxn];inline void hs(int x){ for(int i=1;i<=l;i++) h1[x][i]=h1[x][i-1]*149+c[i]; for(int i=l;i>=1;i--) h2[x][i]=h2[x][i+1]*137+c[i];}int main(){ scanf("%d%d%d",&n,&l,&s); for(int i=1;i<=n;i++){ scanf("%s",c+1); hs(i); } int ans=0; for(int i=1;i<=l;i++){ for(int j=1;j<=n;j++) t[j]=h1[j][i-1]*233+h2[j][i+1]*213; sort(t+1,t+1+n); int now=1; for(int j=2;j<=n;j++){ if(t[j]==t[j-1]) ans+=now,now++; else now=1; } } cout<
<

 

转载于:https://www.cnblogs.com/ChrisKKK/p/11144089.html

你可能感兴趣的文章
取自ACE中的bit操作宏(转)
查看>>
git从已有分支拉新分支开发
查看>>
滚动条隐藏兼容写法
查看>>
SQL2005查询所有表的大小
查看>>
Shell 正则表达式
查看>>
Docker run命令参数整理
查看>>
create-react-app简单操作
查看>>
2016年5月29日晚上(传智Bootstrap笔记五(表单2))
查看>>
IAR嵌入式工作台IDE _ (__no_init)
查看>>
【转】高斯投影及其中央子午线的判断
查看>>
Access提示Insert Into 语法错误解决办法总结
查看>>
Spark之 SparkSql、DataFrame、DataSet介绍
查看>>
Linux Shell基础 - Bash变量 - 环境变量 - 位置参数变量 - 预定义变量
查看>>
java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils...
查看>>
qt-opencv配置mingw编译器
查看>>
php 在 匿名函数中 调用自身。。
查看>>
LeetCode OJ 223.Rectangle Area
查看>>
做一个假文件上传按钮
查看>>
clinit和init(转载)
查看>>
BZOJ 1021 :[SHOI2008]Debt 循环的债务 (DP)
查看>>