博客
关于我
P1381 单词背诵
阅读量:332 次
发布时间:2019-03-04

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

题目

思路

第一问hash求解(素数一定要出乎意料,不然毒瘤出题人卡)

第二问用喜闻乐见的尺取法,详见代码
code:

#include
#include
#include
#include
using namespace std;int uu[1001],m,o[100001],uo[100001][2],ls,yu[133333],n,ans1,ans2=0x7fffffff;int book[133333];string h;int f(string x){ int yy=0; for (int i=1;i<=x.size();i++) yy=(yy*97+x[i-1])%133331; return yy;}int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) { cin>>h; uu[i]=f(h); book[uu[i]]=1; } scanf("%d",&m); for (int i=1;i<=m;i++) { cin>>h; o[i]=f(h); if (book[o[i]]==1) { book[o[i]]=-1; ans1++; } } printf("%d\n",ans1); if (ans1==0) { printf("0"); return 0; }//由于代码对ans1进行判断是否=0的操作,所以我们特判0,0情况 int l=1; int r=1; while (20!=0) { if (ans1==0) { while (book[o[l]]==0) l++; if (l>m) break; ans2=min(r-l,ans2); if (yu[o[l]]==1) ans1++; yu[o[l]]--,l++; } else { if (r>m) break; if (book[o[r]]) { if (yu[o[r]]==0) ans1--; yu[o[r]]++; } r++; } } printf("%d",ans2); return 0;}

转载地址:http://kcye.baihongyu.com/

你可能感兴趣的文章
Dijkstra算法的总结
查看>>
Vue实现选项卡功能
查看>>
vue中接收后台的图片验证码并显示
查看>>
趣谈win10常用快捷键
查看>>
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
查看>>
IDEA出现问题:Received fatal alert: protocol_version 解决方案
查看>>
Airtest自动化测试 Docs airtest.core.android package
查看>>
JDK 内置的多线程协作工具类的使用场景
查看>>
Java 中哪些对象可以获取类对象
查看>>
11.2.6 时间值的小数秒
查看>>
Redis源码分析(七)--- zipmap压缩图
查看>>
自定义Hive Sql Job分析工具
查看>>
【MySQL】(九)触发器
查看>>
Oracle 11G环境配置
查看>>
【Python】(十二)IO 文件处理
查看>>
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
查看>>
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
查看>>
C语言的数值溢出问题(上)
查看>>
函数指针的典型应用-计算函数的定积分(矩形法思想)
查看>>
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
查看>>