当前位置: 首页 > news >正文

数组模拟循环链表

5073. 空闲块 - AcWing题库

数组模拟循环链表

/*从当前位置开始遍历空闲块链表(初始是从地址最小的第一个空闲块开始),寻找满足条件的最小块
(即:大于等于请求空间的最小空闲块,如果有多个大小相同的最小空闲块,则选择遍历遇到的第一个最小空闲块)
(最佳适应原则);
如果选择的空闲块恰好与请求的大小相符合,则将它从链表中移除并返回给用户;
这时当前位置变为移除的空闲块指向的下一空闲块;
如果选择的空闲块大于所申请的空间大小,则将大小合适的空闲块返回给用户,
剩下的部分留在空闲块链表中;这时当前位置仍然为该空闲块;
如果找不到足够大的空闲块,则申请失败;这时当前位置不变。*/
#include<iostream>
#include<cstring>
using namespace std;
const int N = 110,MAX_=1e9 + 10;
int num[N],sz[N];int n;int main(){int req;scanf("%d",&n);for(int i = 1; i <= n; i++){scanf("%d%d",&num[i],&sz[i]);}//数组模拟,判别为空,sz和是0int pt=1;while(scanf("%d",&req),req!=-1){//找min和min_iint min_=MAX_,min_i;for(int i = pt; i <= n; i++){if(!sz[i])continue;//跳过空节点if(sz[i] >= req && sz[i]<min_){min_=sz[i],min_i=i;}}for(int i = 1; i < pt; i++){if(!sz[i])continue;//跳过空节点if(sz[i] >= req && sz[i]<min_){min_=sz[i],min_i=i;}}//min_和min_i如果min_大于if(min_==MAX_)continue;else {//更新节点并更新ptif(req==sz[min_i]){sz[min_i]=0;pt=min_i+1;//下一个if(pt==n+1){pt=1;while(sz[pt]==0)pt++;}}else if(req<sz[min_i]){sz[min_i]=sz[min_i]-req;pt=min_i;}}}for(int i = pt; i <= n; i++){if(!sz[i])continue;//跳过空节点printf("%d %d\n",num[i],sz[i]);}for(int i = 1; i < pt; i++){if(!sz[i])continue;//跳过空节点printf("%d %d\n",num[i],sz[i]);}return 0;
}

http://www.lryc.cn/news/112401.html

相关文章:

  • 第三章 图论 No.5最小生成树之虚拟源点,完全图与次小生成树
  • RESTful API的讲解以及用PHP实现RESTful API
  • Spring中@Component和@Bean的区别
  • 【问题解决】mysql 数据库字符串分割之后多行输出方法
  • flutter开发实战-时间显示刚刚几分钟前几小时前
  • 导出LLaMA等LLM模型为onnx
  • 回顾 OWASP 机器学习十大风险
  • ENSP软件的基本使用命令(第三十一课)
  • 五、FreeRTOS数据类型和编程规范
  • 码出高效_第二章 | 面向对象_上
  • 大学生课设实训|基于springboot的在线拍卖系统
  • 论文阅读 - Social bot detection in the age of ChatGPT: Challenges and opportunities
  • FPGA优质开源项目 - UDP RGMII千兆以太网
  • 学C的第三十二天【动态内存管理】
  • 聊聊elasticsearch的data-streams
  • unreal engine c++ 创建tcp server, tcp client
  • 24届华东理工大学近5年自动化考研院校分析
  • 初识集合和背后的数据结构
  • 选择适合你的数据可视化工具:提升洞察力的关键决策
  • H5中的draggable
  • 搭建SVN服务器
  • OpenCV之信用卡识别实战
  • Detector定位算法在FPGA中的实现——section1 原理推导
  • 心电信号去噪:方法与应用
  • 睡眠助手/白噪音/助眠夜曲微信小程序源码下载 附教程
  • Spring Cloud常见问题处理和代码分析
  • debian怎么修改man help为中文,wsl怎么修改显示语言为中文
  • k8s概念-亲和力与反亲和力
  • 【数据结构】实现单链表的增删查
  • Vue2 第二十节 vue-router (四)