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 上一篇我们讲了内核是如何将指针加入管理类进行管理.这次我将分析一下内核是如何自动 ...
随机推荐
- IIS错误解决办法(HTTP Error 500.19 - Internal Server Error)
window10 切换登陆用户,VS2015的IIS Express 调试代码报HTTP Error 500.19 - Internal Server Error 错误,无法读取配置文件解决办法. I ...
- 数据集下载 MNIST
The Street View House Numbers (SVHN) Dataset SVHN is a real-world image dataset for developing machi ...
- centos6.5 安装zabbix
实验说明: 操作系统: CentOS6.5 64位 Web环境: Apache Mysql PHP zabbix版本: LTS 2.2.10 Linux服务器IP: 10.0.0.2 Linux客户端 ...
- CodeForces 670C Cinema
简单题. 统计一下懂每种语言的人分别有几个,然后$O(n)$扫一遍电影就可以得到答案了. #pragma comment(linker, "/STACK:1024000000,1024000 ...
- python 之文本搜索与替换文件中的文本
#!/usr/local/env python import os, sys nargs = len(sys.argv) if not 3 <= nargs <= 5: print &qu ...
- ios 3D Touch功能的实现
ios9中3D Touch功能是一个新的亮点,这个方便快捷的功能实现也比较简单,废话不多说直接上代码, 一.3D Touch功能添加分为两种(1).静态标签 (2).动态标签 (1).静态添加 这个方 ...
- java学习记录
1,接口(不实现任何方法)——>抽象类(实现部分公共方法)——>简单实现类——>具体实现类 2,抽象类不能被直接实例化,只能实现抽象方法,以匿名内部类的方式表现. 3,如果stati ...
- 最有用的Gulp插件汇总
HTML&CSS autoprefixer - parse CSS and add vendor prefixes to rules by Can I Use. gulp-browser-sy ...
- IO流数据读写总结
1.用java自带的IO读写方法 官方API网站:http://docs.oracle.com/javase/7/docs/api/ 2.Apache的Commons-io-2.4.jar中的方法,参 ...
- 数数字(Digit Counting,ACM/ICPC Danang 2007,UVa1225)
#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char s[10000]; in ...