[CCPC2019 哈尔滨] L. LRU Algorithm

Description

对一个序列执行 LRU 算法。每次询问给定一个窗口,问它是否出现过。

Solution

很显然我们可以先假设窗口长度无限,匹配时候只匹配前缀就可以了。

然后我准备用普通 HASH 莽过去,发现凉了。

首先可以不使用 HASH 表,而对每个长度存下它的所有 HASH 值,然后暴力枚举看是否相等。

这样的好处就是相等以后可以找到原序列然后确定一下是否真的相等,简称二次判断。

虽然复杂度玄学,但还是 \(982ms\) 卡过去了。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int M = 5003, MOD = 1000000007;
int t[M],q[M][M],T,n,p,m;
ll h[M][M],val;
int main() {
scanf("%d",&T);
while(T--) {
scanf("%d%d",&n,&p);
for(int i=0;i<=n;i++) {
for(int j=0;j<=n;j++) {
q[i][j]=h[i][j]=0;
}
}
int top=0;
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) q[i][j]=q[i-1][j];
int tmp,pos=0;
scanf("%d",&tmp);
for(int j=1;j<=top;j++) {
if(tmp==q[i][j]) {
pos=j;
break;
}
}
if(pos) {
for(int j=pos;j;j--) q[i][j]=q[i][j-1];
}
else {
for(int j=++top;j;j--) q[i][j]=q[i][j-1];
}
q[i][1]=tmp;
for(int j=1;j<=n;j++) h[i][j]=(h[i][j-1]*(n+1)+q[i][j])%MOD;
}
while(p--) {
scanf("%d",&m);
val=0;
for(int i=1;i<=m;i++) {
scanf("%d",&t[i]);
val=(val*(n+1)+t[i])%MOD;
}
int flag=0;
for(int i=0;i<=n;i++) {
if(h[i][m]==val) {
int fg=1;
for(int j=1;j<=m;j++) {
if(q[i][j]!=t[j]) {
fg=0;
break;
}
}
if(fg) {
flag=1;
break;
}
}
}
puts(flag?"Yes":"No");
}
}
} /*
1
7 5
4 3 4 2 3 1 4
1 4
2 2 3
3 3 2 1
4 4 1 3 2
4 3 4 0 0
*/

[CCPC2019 哈尔滨] L. LRU Algorithm - 哈希的更多相关文章

  1. BZOJ_1212_[HNOI2004]L语言_哈希

    BZOJ_1212_[HNOI2004]L语言_哈希 Description 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写 ...

  2. LRU Algorithm Gym - 102394L (HASH)

    LRU Algorithm \[ Time Limit: 1000 ms\quad Memory Limit: 524288 kB \] 题意 给出 \(n\) 个数字和 \(m\) 次查询. 每次询 ...

  3. 【gym102394L】LRU Algorithm(自然溢出哈希)

    题意:给定一个n个数的数字序列,第i个数为a[i],每次操作会将a[i]插入或移到最前端: 1.若a[i]已经在序列中出现过,则将其移到最前端,并删除原出现位置 2.若a[i]未出现过,则直接将其插入 ...

  4. Operating System Memory Management、Page Fault Exception、Cache Replacement Strategy Learning、LRU Algorithm

    目录 . 引言 . 页表 . 结构化内存管理 . 物理内存的管理 . SLAB分配器 . 处理器高速缓存和TLB控制 . 内存管理的概念 . 内存覆盖与内存交换 . 内存连续分配管理方式 . 内存非连 ...

  5. CCPC 2017 哈尔滨 L. Color a Tree && HDU 6241(二分+树形DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6241 题意:给你一棵有 n 个结点的树,每个结点初始颜色都为白色,有 A 个条件:结点 x_i 的黑色 ...

  6. [CCPC2019 哈尔滨] A. Artful Paintings - 差分约束,最短路

    Description 给 \(N\) 个格子区间涂色,有两类限制条件 区间 \([L,R]\) 内至少 \(K\) 个 区间 \([L,R]\) 外至少 \(K\) 个 求最少要涂多少个格子 Sol ...

  7. The 2019 China Collegiate Programming Contest Harbin Site

    题解: https://files.cnblogs.com/files/clrs97/HarbinEditorialV2.zip Code: A. Artful Paintings /* let x= ...

  8. 缓存算法(FIFO 、LRU、LFU三种算法的区别)

    FIFO算法 FIFO 算法是一种比较容易实现的算法.它的思想是先进先出(FIFO,队列),这是最简单.最公平的一种思想,即如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小.空间满的时 ...

  9. Redis中的LRU淘汰策略分析

    Redis作为缓存使用时,一些场景下要考虑内存的空间消耗问题.Redis会删除过期键以释放空间,过期键的删除策略有两种: 惰性删除:每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除 ...

随机推荐

  1. lucas定理及其拓展的推导

    lucas定理及其拓展的推导 我的前一篇博客-- lucas定理 https://mp.csdn.net/mdeditor/100550317#主要是给出了lucas的结论和模板,不涉及推导. 本篇文 ...

  2. appium 爬取微信的相册内容(不知什么时候能写完)

    # crowl wechat through appium from appium import webdriver from selenium.webdriver.support.ui import ...

  3. 0009 基于DRF框架开发(02 创建模型)

    上一节介绍了DRF开发的基本流程,共五个步骤: 1 创建模型 2 创建序列化器 3 编写视图 4 配置URL 5 运行测试 本节主要讲解创建模型. 构建学校,教师,学生三个模型,这三个模型之间的关系是 ...

  4. JavaScript 自适应轮播图

    代码 话不多说,先上代码,方便复制粘贴.演示 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  5. sql-labs 18-20(sqlmap注入)

    这三题主要是关于HTTP头部的注入 常见的HTTP注入点产生位置为 [Referer].[X-Forwarded-For].[Cookie].[X-Real-IP].[Accept-Language] ...

  6. Mybatis常见面试题汇总

    Mybatis常见面试题汇总 最近在复习整理Mybatis的相关知识,针对面试中的典型问题,结合相关书籍和网上相关帖子,做如下整理. ================================= ...

  7. 如何在 messager/alert/confirm等消息提示框中 获取 / 设置 嵌入 html内容中的 input[type=checkbox]等的选中状态?

    总结, 有3点: 不能/不要 在 这些消息框 / 提示框/ 对话框中的 回调函数中去写代码: 获取嵌入 内容中input.checkbox的选中状态, 因为 虽然在这些框存在的时候, 这个 check ...

  8. Docker造化钟神秀

    之前闲暇之余有玩过一哈Dokcer容器,但是日子挺久了,然后挺多东西就忘记了,趁着今天有时间重拾一下docker的相关知识. 搜索下载镜像 docker search ubuntu docker pu ...

  9. 常用命令 在linux下

    1.拷贝某个目录及其下的所有的文件到另外一个目录 语法:cp -r <source directory name>/ <destination directory name>/ ...

  10. Gin_Cookie

    1. cookie HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出 Cookie就是解决HTTP协议无状态的方案之一,中文是小甜饼的意思 C ...