博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[codeforces] 25E Test || hash
阅读量:5012 次
发布时间:2019-06-12

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

给你三个字符串,找一个字符串(它的子串含有以上三个字符串),输出此字符串的长度。


先暴力判断是否有包含,消减需要匹配的串的数量。因为只有三个字符串,所以暴力枚举三个串的位置关系,对三个串跑好哈希,然后判断后缀与前缀重合长度即可。

#include
#include
#include
#define mo 99994711typedef long long ll;using namespace std;int is1=1,is2=1,all=3,base=1314,ord[4],ans,l[4];long long num[4][100010],bs[100010];bool vis[4];char s[4][100010];ll gethash(int x,int st,int l){ ll ans=0; ans=bs[100005-st]*(num[x][st+l-1]-(st==0? 0 : num[x][st-1]))%mo; return (ans%mo+mo)%mo;}bool in(int x,int y){ ll u,v; for (int i=0;i
3) { ans=min(ans,l[1]+l[2]+l[3]-mini(ord[1],ord[2])-mini(ord[2],ord[3])); return ; } for (int i=1;i<=3;i++) if (!vis[i]) { vis[i]=1; ord[x]=i; dfs(x+1); vis[i]=0; }}void st(){ if (l[1]>l[2]) swap(l[1],l[2]),swap(s[1],s[2]); if (l[2]>l[3]) swap(l[2],l[3]),swap(s[2],s[3]); if (l[1]>l[2]) swap(l[1],l[2]),swap(s[1],s[2]);}int main(){ ans=0x7fffffff; bs[0]=1; for (int i=1;i<=100005;i++) bs[i]=bs[i-1]*base%mo; scanf("%s%s%s",s[1],s[2],s[3]); l[1]=strlen(s[1]); l[2]=strlen(s[2]); l[3]=strlen(s[3]); st(); hsh(1); hsh(2); hsh(3); if (in(1,2)) is1=0,all--; if (in(2,3)) is2=0,all--; if (is1 && in(1,3)) is1=0,all--; if (all==1) { printf("%d\n",l[3]); return 0; } if (all==2) { if (!is2 && is1) swap(s[1],s[2]),swap(l[1],l[2]); hsh(2); hsh(3); printf("%d\n",l[2]+l[3]-max(mini(2,3),mini(3,2))); } else { dfs(1); printf("%d\n",ans); } return 0;}

转载于:https://www.cnblogs.com/mrha/p/8024224.html

你可能感兴趣的文章
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法...
查看>>
网络编程-socket并发-粘包问题
查看>>
python 中安装pandas
查看>>
Hibernate 的<generator class="native"></generator>的不同属性含义
查看>>
linux修改root账户的用户名所得的教训
查看>>
【LeetCode】Flatten Binary Tree to Linked List
查看>>
读后感-浮生六纪
查看>>
执行指定路径的程序文件
查看>>
Leetcode-950 Reveal Cards In Increasing Order(按递增顺序显示卡牌)
查看>>
[Linux] 在 Linux CLI 使用 ssh-keygen 生成 RSA 密钥
查看>>
14款下载有用脚本的超酷网站
查看>>
LXC-Linux Containers介绍
查看>>
7.31实习培训日志-docker sql
查看>>
c#中使用servicestackredis操作redis
查看>>
ios app 真机crash报告分析
查看>>
CRC标准以及简记式
查看>>
SEO搜索引擎
查看>>
关于本地使用tomcat部署web应用,浏览器自动跳转为https的问题
查看>>
一、Text To Speech
查看>>
Java读取并下载网络文件
查看>>