FZU 1893 内存管理 模拟
比赛的时候队友要做这道题……
他没做出来自己也被误导了……
也算是个教训 自己还是要有自己的思路……
又是模拟题……
网上都是用vector做的 我最近才会stl 怎么会用那么高大上的的东西……
强力模拟一波内存……
反正只有100的大小 随意遍历……
模拟都做不出来 只能说明真的方了……
只要心态稳定 模拟都是水题……
#include<stdio.h>
#include<string.h>
int memory[];
int room[];
int main(){
int T;
scanf("%d",&T);
while(T--){
char s[];
int used=;
int point=;
while(~scanf("%s",s)&&strcmp(s,"End")!=){
if(strcmp(s,"Create")==){
int number;
scanf("%d",&number);
scanf("%d",&memory[number]);
int emp=;
int ok=;
for(int i=;i<=&&ok;i++){
if(!room[i]) emp++;
if(emp>=memory[number]){
int ii=i;
while(room[ii]==){
room[ii]=number;
ii--;
}
ok=;
printf("Create process %d of size %d successfully!\n",number,memory[number]);
}
else if(room[i+]!=&&ok) emp=;
}
if(ok){
memory[number]=;
printf("No enough memory!\n");
}
}
if(strcmp(s,"Delete")==){
int n;
scanf("%d",&n);
if(memory[n]==) printf("No such process!\n");
else{
printf("Delete process %d of size %d successfully!\n",n,memory[n]);
used-=memory[n];
memory[n]=;
for(int i=;i<=;i++)
if(room[i]==n) room[i]=;
}
}
if(strcmp(s,"Print")==){
int emp=;
int full=;
for(int i=;i<=;i++){
if(!room[i]) emp++;
else{
if(emp){
printf("H %d\n",emp);
emp=;
}
while(room[i++]&&room[i]==room[i-]) full++;
printf("P %d %d\n",room[--i],full+);
full=;
}
}
if(emp) printf("H %d\n",emp);
}
}
memset(room,,sizeof(room));
memset(memory,,sizeof(memory));
}
return ;
}
FZU 1893 内存管理 模拟的更多相关文章
- (原创)动态内存管理练习 C++ std::vector<int> 模拟实现
今天看了primer C++的 “动态内存管理类”章节,里面的例子是模拟实现std::vector<std::string>的功能. 照抄之后发现编译不通过,有个库函数调用错误,就参考着自 ...
- Java内存管理的进一步理解-模拟过程图解
Java内存管理的进一步理解-模拟过程图解--转载 java的内存管理分为: 1.堆内存:2.栈内存:3.方法区:4.本地方法区 /* 1:方法区 方法区存放装载的类数据信息包括: ...
- C++ 系列:内存管理
1.内存分配方式 内存分配方式有三种: (1)从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2)在栈上创建. 在执行函 ...
- .NET面试题解析(06)-GC与内存管理
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 GC作为.NET的重要核心基础,是必须要了解的.本文主要侧重于GC内存管理中的一些关键点,如要要全面深入了 ...
- C语言内存管理(转)
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆.如果 ...
- 转:C/C++内存管理详解 堆 栈
http://chenqx.github.io/2014/09/25/Cpp-Memory-Management/ 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了 ...
- 程序员必读:Linux内存管理剖析
现在的服务器大部分都是运行在Linux上面的,所以作为一个程序员有必要简单地了解一下系统是如何运行的. 对于内存部分需要知道: 地址映射 内存管理的方式 缺页异常 先来看一些基本的知识,在进程看来,内 ...
- MongoDB源码概述——内存管理和存储引擎
原文地址:http://creator.cnblogs.com/ 数据存储: 之前在介绍Journal的时候有说到为什么MongoDB会先把数据放入内存,而不是直接持久化到数据库存储文件,这与Mong ...
- Cocos2d-x内存管理研究<二>
http://hi.baidu.com/tzkt623/item/46a26805adf7e938a3332a04 上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...
随机推荐
- 闹心的python编码
说起编码,真是十分忧伤.每次听课都是绕了半天把自己搞糊涂.今天特意来整理一下思路. What 编码!? 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类可以理解.易懂的表示存在.我打算将这种 ...
- ie Css Hack 特殊符号
Css Hack 特殊符号 (1)* :IE6/7都能识别*,标准浏览器不识别(2)_:只有IE6识别(3)!Important:IE6不识别,Firefox,IE7/8/9.chorme等主流浏览器 ...
- 在一个form里边同时执行搜索和 execl导出功能
一个form 分搜索 和 导出<form name="searchform" id="searchform" > <input type=&q ...
- MessageBox.Show()时MessageBoxIcon的显示
MessageBox.Show()方法,有个参数是MessageBoxIcon,这个是通过图标来表明提示信息的类型,比如一般.警告.错误等 MessageBoxIcon是一个枚举 所有成员如图: 示例 ...
- Xcode 8 控制台输出大量不用的log的问题解决&&NSLog失效的解决
Product-->Scheme-->editeScheme中:Auguments中Environment Variable中 Scheme中添加环境变量 "OS_ACTIVIT ...
- php+mysql 内联接 和 子查询
INNER JOIN(内连接):取得两个表中存在连接匹配关系的记录 $sql="SELECT * FROM subject as a INNER JOIN e_user as b ON a. ...
- PHP之APC缓存详细介绍(学习整理)
APC的介绍 The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. Its goal is to provi ...
- Hibernate5-课程笔记3
详解Hibernate的API: (1)Configuration接口: org.hibernate.cfg.Configuration接口的作用是加载主配置文件及映射文件,以实现对Hibernate ...
- gulp4个基础API
Gulp.src(globs[, options]) 此接口会匹配工作目录下指定规则的文件并返回提供给下一个插件管道使用.其中globs就是匹配格式,options是一些额外参数. gulp.src( ...
- XSL相关
<?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet type="tex ...