hihoCoder#1086 Browser Caching

原题地址

list+map可以轻松搞定,如果不借助STL实现起来还是挺麻烦的

代码:

 1 #include <iostream>
 2 #include <string>
 3 #include <list>
 4 #include <map>
 5
 6 using namespace std;
 7
 8 int N, M;
 9 map<string, list<string>::iterator> record;
10 list<string> cache;
11 int size = 0;
12
13 int main() {
14   string url;
15
16   cin >> N >> M;
17   while (N--) {
18     cin >> url;
19     auto p = record.find(url);
20     if (p != record.end()) {
21       cache.erase(p->second);
22       cache.push_front(p->first);
23       cout << "Cache" << endl;
24     }
25     else if (size >= M){
26       record.erase(cache.back());
27       cache.pop_back();
28       cache.push_front(url);
29       record.insert(pair<string, list<string>::iterator>(url, cache.begin()));
30       cout << "Internet" << endl;
31     }
32     else {
33       cache.push_front(url);
34       size++;
35       record.insert(pair<string, list<string>::iterator>(url, cache.begin()));
36       cout << "Internet" << endl;
37     }
38   }
39   return 0;
40 }
时间: 2024-12-05 12:58:36

hihoCoder#1086 Browser Caching的相关文章

使用Page Speed Online改善网站速度

Google是一个伟大的企业,一直以来都非常重视网站的用户体验:对于用户体验,笔者认为,一个网站的用户体验好不好,一个很重要的因素就是网站的打开速度(加载速度):Google最近发布的在线网页加速工具--Page Speed Online,可分析任何网站的速度并且提供如何改进的建议. Page Speed对于一个网站来说,是一个很不错的工具,因为相当一部分的江西seo站长并不了解影响自己网站加载速度的因素有哪些,也就不知道如何去改进自己网站的加载速度.下面就以笔者的博客为例,来阐述一下Page

9大浏览器端缓存机制分析

浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存的机制种类较多,总体归纳为九种,这里详细分析下这九种缓存机制的原理和使用场景.打开浏览器的调试模式->resources左侧就有浏览器的8种缓存机制. 一.http缓存 http缓存是基于HTTP协议的浏览器文件级缓存机制.即针对文件的重复请求情况下,浏览器可以根据协议头判断从服务器端请求文件

前端技术-调试工具(下)

页面制作之调试工具 五.Profiles 这个主要是做性能优化的,包括查看CPU执行时间与内存占用等. 例述如下:原文地址:http://www.smashingmagazine.com/2012/06/12/javascript-profiling-chrome-developer-tools/. 你的网站正常运转.现在我们来让它运转的更快.网站的性能由页面载入速度和代码执行效率决定.一些服务可以让你的网站载入更快,比如压缩JS和CDN,但是让代码执行的更快你要做的事情.代码中很小的改动都可能

Technical analysis of client identification mechanisms

http://www.chromium.org/Home/chromium-security/client-identification-mechanisms Chromium‎ > ‎Chromium Security‎ > ‎ Technical analysis of client identification mechanisms Written by Artur Janc <[email protected]> and Michal Zalewski <[email

9中浏览器端缓存

浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存的机制种类较多,总体归纳为九种,这里详细分析下这九种缓存机制的原理和使用场景.打开浏览器的调试模式->resources左侧就有浏览器的8种缓存机制.    一.http缓存   http缓存是基于HTTP协议的浏览器文件级缓存机制.即针对文件的重复请求情况下,浏览器可以根据协议头判断从服务器

详解浏览器缓存

浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览. 浏览器缓存主要有两类:缓存协商:Last-modified ,Etag 和彻底缓存:cache-control,Expires. 具体地址参见:http://www.cnblogs.com/skynet/archive/2012/11/28/2792503.html 和http://my.o

struts2 配置静态资源

Struts2框架有两个核心配置文件:struts.xml和Struts2默认属性文件default.properties(在struts2-core-2.3.20.jar中) default.properties可以通过自己在classpath下写一个struts.properties文件进行定制改写 为什么是struts.properties,这可以看org.apache.struts2.config下的DefaultSettings和PropertiesSettings源码 Default

站点性能评測实验

实验内容 本实验的目的是利用主流的站点分析工具对Alexatop100的前5名站点进行分析.评价其站点性能. 在本实验中.我将在Windows平台下进行实验,评測的站点是眼下Alexatop 100 的前5名的站点,包含google.com, Facebook.com, Youtube.com, Yahoo.com 和baidu.com.可是因为网络的问题,我们无法登陆到Facebook.com和Youtube.com的页面.所以我将对待评測的网页进行顺延,即对排在第6位wikipedia.or

页面制作之调试工具

页面制作之调试工具 转载于http://www.cnblogs.com/jingwhale/p/4509160.html 网易云课堂笔记 常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等.它们的功能与使用方法大致相似.Chrome浏览器简洁快速,功能强大这里主要介绍Chrome浏览器的调试工具. 打开 Google Chrome 浏览器,通过下面任何一种方式进入开发人员工具: -点击位于浏览器用户界面右上角的“页面”下拉菜单,“更多工具”