1594: TomCat的操作系统课(思维)
1594: TomCat的操作系统课
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 58 Solved: 12
[Submit][Status][Web Board]
Description
TomCat是学渣一枚,TomCat上课经常连书都懒得拿,因为TomCat实在不想背着一本比字典还厚的《操作系统》课本。然而,TomCat总是能够神奇的在其他同学没能回答对的问题上作出正确的回答???!!!,然而,这一次,老师在叫了几位同学回答“电梯算法”和电梯的区别….,同学们都没回答正确,接着老师叫到了TomCat,TomCat此时正在神游,根本不知道“电梯算法”是什么鬼。所以就….,TomCat不开心了,现在TomCat想简单模拟“电梯算法”,但是作为学渣,TomCat实在不想动手,于是他告诉你“电梯算法”就是这样的,它是磁盘调度算法,叫做SCAN算法,磁头从磁盘的一端移向另一端,同时当磁头移过每个柱面的时候,会处理该柱面上的服务请求。当到达另一端时,磁头改变移动反向,处理继续。磁头在磁盘上来回扫描。假设柱面的范围是[0,180], 初始磁头在pos位置(磁头总是先往左在往右),给你每个服务的请求时间,以及请求所在的柱面。TomCat需要你计算该请求得到磁头的响应需要的时间。(假设磁头1ms移动一个单位柱面。处理请求时间忽略不计)
Input
第一行磁头0时刻所在的位置pos(pos>=0&&pos<=180) T(T<=100000)个请求
接下来T 行是请求的时间t(t<=100000),请求位于的柱面s(s>=0&&s<=180)
Output
输出请求到被处理的等待时间(单位:ms)
Sample Input
90 2
10 10
5 83
90 2
5 10
10 80
Sample Output
70ms
2ms
75ms
0ms
HINT
Source
/*
WA快到爆炸,开始理解错了请求时间t,WA好几发,然后正确理解请求时间后,推导公式,老想着更快,更简单,又WA好几发~~~~
解题思路:
请求时间t为,只有 时间 到t时 所对应的请求 才会处理,如果到了柱面s(假设耗时x),但是t还没到(x < t),则要直到下一次到柱面s并且t>=x,这个柱面的请求才会被处理,所以到被处理的等待时间就是,ans = x - t(这次(x >=t了)到柱面s总共耗时 - 请求时间);
根据s在pos位置的左边还是右边分为两种情况:
1)s <= pos:
x0 = pos - x;(x0,表示pos第一次到s时耗时)
x1 = x0 + 2*s;(x1表示pos第二次扫描到s时耗时,后面xi类推)
x2 = x1 + 2*(180-s);
x3 = x2 + 2*s;
x4 = x3 + 2*(180-s);
2)s > pos:
x0 = 2*pos + s- pos;
x1 = x0 + 2*(180-s);
x2 = x1 +2*s;
x3 = x2 + 2*(180-s);
...
所以根据上述规律,x算到x >=t时停止
*/
AC_code:
#include<stdio.h>
int main()
{long long pos,T, t,s,x,r;while(~scanf("%lld%lld",&pos,&T)){while(T--){scanf("%lld%lld",&t,&s);x = s <= pos ? pos - s : 2 * pos + s - pos;r = 1;while(x < t){if(r % 2 != 0)x += s <= pos ? 2*s : 2*(180-s);elsex += s <= pos ? 2*(180-s) : 2*s;r++;}printf("%lldms\n",(x-t));}}return 0;
}
1594: TomCat的操作系统课(思维)相关推荐
- 操作系统课设--虚拟内存
山东大学操作系统课设lab7 实验七 虚拟内存(lab7) 实验目的 实验环境 实验思路 关键源代码注释以及程序说明 调试记录 实验七 虚拟内存(lab7) 实验目的 在未实现虚拟内存管理之前,Nac ...
- 操作系统课设--系统调用
山东大学操作系统课设lab6 实验六 系统调用(lab6) 实验目的 实验环境 实验思路 调试记录 实验六 系统调用(lab6) 实验目的 扩展现有的class AddrSpace的实现,使得Nach ...
- 操作系统课设--具有二级索引的文件系统
山东大学操作系统课设lab5 实验五 具有二级索引的文件系统(lab5) 实验目的 实验环境 实验思路 调试记录 实验五 具有二级索引的文件系统(lab5) 实验目的 Nachos系统原有的文件系统只 ...
- 操作系统课设--扩展文件系统
山东大学操作系统课设lab4 实验四 扩展文件系统(lab4) 概念欠缺 实验目的 实验环境: 实验思路: 关键源代码注释以及程序说明: 调试记录: 实验四 扩展文件系统(lab4) 概念欠缺 ifd ...
- 操作系统课设--使用信号量解决生产者/消费者同步问题
山东大学操作系统课设lab3 实验三 使用信号量解决生产者/消费者同步问题(lab3) 实验目的 理解Nachos的信号量是如何实现的 生产者/消费者问题是如何用信号量实现的 在Nachos中是如何创 ...
- 操作系统课设--具有优先级的线程调度
山东大学操作系统课设lab2 实验二 具有优先级的线程调度(lab2) 概念欠缺 实验环境 实验目的 1. 熟悉Nachos原有的线程调度策略 2. 设计并实现具有优先级的线程调度策略 实验二 具有优 ...
- 操作系统课设--NACHOS试验环境准备、安装与MAKEFILE分析
山东大学操作系统课设lab1 实验一 NACHOS试验环境准备.安装与MAKEFILE分析(lab1) 实验环境: 分析记录: 1. 准备虚拟机下LINUX宿主操作系统环境 2. NACHOS实验代码 ...
- 操作系统课设之简单 shell 命令行解释器的设计与实现
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 操作系统课设之基于信号量机制的并发程序设计
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
最新文章
- 【设计模式】备忘录模式
- java并发框架支持锁包括,tip/面试题_并发与多线程.md at master · 171437912/tip · GitHub...
- unity延迟执行下一行代码_Python代码在Linux环境下执行错误异常
- CodeSmith连接mysql
- MyBatis无限输出日志
- SpringMVC文件上传下载和拦截器
- Ping pong【树状数组】
- principle中文_principle与principal,长得像,发音还一样!又头疼了!
- 三星Galaxy Note 10渲染图曝光:前置打孔双摄+后置横排四摄
- 一文详解Python中的*可变参数与**关键字参数
- 记录一下自己简单的想法
- [原创]浅析汇编之堆栈平衡
- Java将html转换PDF文件
- 什么样的文案才算是好文案?
- 【说明书】迪士尼儿童手表说明书
- 虎牙财报奏响游戏直播艰难进行曲
- 好女人是一所学校- -
- linux卡住重启_linux df -h 命令卡住 解决方法
- Side-Tuning:domain adaption
- 百慕大财政部批准Velocity Ledger ICO申请