博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces-963 D Frequency of String
阅读量:7055 次
发布时间:2019-06-28

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

题意:给你一个字符串,进行q次询问操作,每次给你一个n和一个子串,问能否在字符串中出现n次子串,若可以输出最短长度的n次子串,否则输出-1

题解:优雅的暴力哈希,枚举每一个不同种长度的子串,注意是不同种!因为这样子能减少枚举的次数,这是一个巨大的优化,同时用unordered_map这个不按key排序的map,减少logn的STL复杂度。(我就说一定存在不按照key排序的map啊啊啊)

还是我很挫的代码

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//CLOCKS_PER_SEC#define se second#define fi first#define ll long long#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define Pii pair
#define Pli pair
#define ull unsigned long long#define pb push_back#define fio ios::sync_with_stdio(false);cin.tie(0)const int N=1e5+5;const ull base=131;const int INF=0x3f3f3f3f;using namespace std;ull Hash[N];ull p[N];unordered_map
mp;ull get(int l,int r){ if(l==0)return Hash[r]; return Hash[r]-Hash[l-1]*p[r-l+1];}int L[N],id[N],a[N];ull H[N];bool cmp(int x,int y){ return L[x]
ans[N];int main(){ fio; string str; cin>>str; int len=str.length(); Hash[0]=str[0]; p[0]=1; for(int i=1;i
>n; for(int i=1;i<=n;i++){ string op; cin>>a[i]; cin>>op; id[i]=i,L[i]=op.length(); ull u=0; for(int j=0;j

 

转载于:https://www.cnblogs.com/Mrleon/p/8886982.html

你可能感兴趣的文章
IBM中国开发中心吉燕勇: 通过Cloud Data Services打造新型认知计算数据分析云平台...
查看>>
作者问答:解密硅谷
查看>>
linux系统高并发socket最大连接数优化
查看>>
Netflix发布Polly.JS,一个用于HTTP交互的开源库
查看>>
敏捷团队中测试人员的角色
查看>>
GitHub推出Scientist,帮助开发者重构关键路径代码
查看>>
40%创业公司用伪AI忽悠钱,欧洲被AI时代抛弃了吗?
查看>>
AT&T签署8位数合同,设备商恐无法从5G获利
查看>>
Netflix Play API:我们为什么构建了一个演进式架构?
查看>>
我不是仆人,是主人!敏捷中领导力的新比喻?
查看>>
Next.js 7.0正式发布:重新编译速度提高42%,支持WebAssembly
查看>>
Java API for RESTful Web Services 2.1发布
查看>>
Visual Studio 2017 15.8第一个预览版发布,支持ARM64
查看>>
Java日志性能那些事
查看>>
Invokedynamic:Java的秘密武器
查看>>
Raffi Krikorian 为“在运行中进行架构重写”提供了指南
查看>>
Plaid.com的监控系统如何实现与9600多家金融机构的集成
查看>>
Laravel学习笔记之PHP反射(Reflection) (上)
查看>>
Build Your Own Promise
查看>>
bootstrap - form
查看>>