首页 > 其他分享 >NC20185 [JSOI2010]缓存交换

NC20185 [JSOI2010]缓存交换

时间:2022-08-28 09:33:06浏览次数:78  
标签:JSOI2010 缓存 题目 int NC20185 mp nex

题目

  • 原题地址:[JSOI2010]缓存交换
  • 题目编号:NC20185
  • 题目类型:堆、贪心
  • 时间限制:C/C++ 1秒,其他语言2秒
  • 空间限制:C/C++ 262144K,其他语言524288K

1.题目大意

  • Cache容量以及主存单元访问次序一致,求最少的非命中次数

2.题目分析

  • 每次删除缓存区中元素中下一次出现最晚的

3.题目代码

#include <bits/stdc++.h>

using namespace std;

int a[100005];
int f[100005];
int nex[100005];

int main() {
    int n, m;
    cin >> n >> m;
    for(int i=1;i<=n;i++) cin >> a[i];
    map<int, int> mp;
    priority_queue<int> q;
    for(int i=n;i>0;i--) {
        if(mp.count(a[i])) nex[i] = mp[a[i]];
        else nex[i] = 100001;
        mp[a[i]] = i;
    }
    int ans = 0;
    for(int i=1;i<=n;i++) {
        if(!f[i]){
            ans++;
            if(ans>m) f[q.top()] = 0, q.pop();
        }
        f[nex[i]] = 1, q.push(nex[i]);
    }        
    cout << ans << endl;   
}

标签:JSOI2010,缓存,题目,int,NC20185,mp,nex
From: https://www.cnblogs.com/zhangyi101/p/16632261.html

相关文章

  • Django入门到放弃之缓存及信号机制
    1.缓存介绍在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.当一个网站的用户访问量很大的时......
  • http缓存
    通常对静态的资源,内存缓存/磁盘缓存1、原理:在首次请求后,保存一份请求资源的响应副本,当用户再次发起相同请求后,如果判断缓存命中,则拦截请求,将之前存储的相应副本返回给......
  • 【Java面试】准备跳槽!那这期面试题必须要会,请描述一下Redis的缓存淘汰策略
    “请你描述一下Redis的缓存淘汰策略”你如果你正好遇到这个问题,想好怎么回答了吗?关于这个问题,我把高手的回答整理到了15W字的面试文档里面大家可以私信留言领取。下面......
  • 如何保证数据库和缓存双写一致性
     数据库和缓存(redis)双写一致性问题,不管你用何种语言,尤其是在高并发的场景下,这个问题会很容易被放大。无论是在工作中,还是在面试中遇到这种问题的概率都非常大,因......
  • Redis获取缓存异常:redis java.util.ArrayList cannot be cast to java.lang.String
    Redis获取缓存异常:redisjava.util.ArrayListcannotbecasttojava.lang.String在使用redis缓存数据时,增加一个配置类,修改key序列化器为string@Configurationpublic......
  • Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解
    随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一。Spring3开......
  • Spring Boot 2.x基础教程:EhCache缓存的使用
    在SpringBoot中通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManager),SpringBoot根据下面的顺序去侦测缓存提供者:GenericJCache(JSR-107)(EhCache3,Haze......
  • 解决Vuex刷新页面数据没缓存的问题
    监听页面是否刷新,如果页面刷新了,将state对象存入到sessionStroage中。页面打开之后,判断sessionStorage中是否存在state对象,如果存在,则说明页面是被刷新过,将sessionStor......
  • 综合案例-黑马旅游网_分类数据展示缓存优化
    综合案例-黑马旅游网_分类数据展示缓存优化分析发现,分类的数据在每一次页面加载后都会重写请求数据库来加载对数据库压力比较大而且分类的数据不会经常产生变化所有可......
  • spring boot中的缓存管理
    springboot默认的缓存管理常用的缓存注解@EnableCaching:在类上使用,表示使用基于注解的方式进行缓存管理@Cacheable:用在类或者方法上。该注解用在方法上时,在方法执行......