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 上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...
随机推荐
- NGINX----源码阅读----(option配置脚本)
/auto/options options文件主要负责nginx启动前配置脚本对环境变量初始化. 1.默认为环境变量赋值 help=no NGX_PREFIX= NGX_SBIN_PATH= NGX_ ...
- PHP引用操作以及外部操作函数的局部静态变量的方法
通过引用方式在外部操作函数或成员方法内部的静态变量 下面举个简单的例子,说明三个关于引用方面的问题: 1. 参数引用后函数内进行类型转换同样是地址操作 2. 参数引用后再传递给其他函数时需要再次添加引 ...
- 某网站看到的某神的Symfony_使用心得
1.symfony2这种量级的框架怎么可能有捷径可走?其定位是松藕合和易扩展,并不是很容易的事.sf2是靠configuration系统(它可以把各种语义化yml配置转为数组)和服务容器概念来实现的b ...
- PAT乙级1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...
- dplyr 数据操作 常用函数(1)
上面介绍完dplyr中,几个主要的操作函数后,我们再进一步了解dplyr中那些函数可能我们会经常要用到. 这里主要根据dplyr包作者的书籍目录来把它列出来. 1.add_rownames 添加行名称 ...
- Java 并发 线程的生命周期
Java 并发 线程的生命周期 @author ixenos 线程的生命周期 线程状态: a) New 新建 b) Runnable 可运行 c) Running 运行 (调用 ...
- Uploadify 上传后的文件删除,上传队列无法更新问题
1. 定义一个上传限制数量 var uploadLimit = 3; 2. 点击页面的删除图片成功后,将uploadLimit++操作 3. 通过uploadify的settings方式重置上传限制数 ...
- 手机浏览器wap网页点击链接触发颜色区块的问题解决办法
引子 在做HTML5 WAP网页的时候,一行内容做了2个链接,点击一个标签的时候,整个颜色块会闪一下,影响美观.需求针对这种情况来问我,能否把这个一闪的颜色去掉.我当时就想,这个怎么去?那我也不好直接 ...
- xml文件查找重复元素(超简单版)
使用WPS,新建一个表格文件,将xml拖入表格,点数据,选中存在重复项的列,点高亮重复项,OK.
- json 多重嵌套反序列化和序列化
namespace ConsoleApplication1 { class Program { static void Main(string[] args) ...