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的操作系统课(思维)相关推荐

  1. 操作系统课设--虚拟内存

    山东大学操作系统课设lab7 实验七 虚拟内存(lab7) 实验目的 实验环境 实验思路 关键源代码注释以及程序说明 调试记录 实验七 虚拟内存(lab7) 实验目的 在未实现虚拟内存管理之前,Nac ...

  2. 操作系统课设--系统调用

    山东大学操作系统课设lab6 实验六 系统调用(lab6) 实验目的 实验环境 实验思路 调试记录 实验六 系统调用(lab6) 实验目的 扩展现有的class AddrSpace的实现,使得Nach ...

  3. 操作系统课设--具有二级索引的文件系统

    山东大学操作系统课设lab5 实验五 具有二级索引的文件系统(lab5) 实验目的 实验环境 实验思路 调试记录 实验五 具有二级索引的文件系统(lab5) 实验目的 Nachos系统原有的文件系统只 ...

  4. 操作系统课设--扩展文件系统

    山东大学操作系统课设lab4 实验四 扩展文件系统(lab4) 概念欠缺 实验目的 实验环境: 实验思路: 关键源代码注释以及程序说明: 调试记录: 实验四 扩展文件系统(lab4) 概念欠缺 ifd ...

  5. 操作系统课设--使用信号量解决生产者/消费者同步问题

    山东大学操作系统课设lab3 实验三 使用信号量解决生产者/消费者同步问题(lab3) 实验目的 理解Nachos的信号量是如何实现的 生产者/消费者问题是如何用信号量实现的 在Nachos中是如何创 ...

  6. 操作系统课设--具有优先级的线程调度

    山东大学操作系统课设lab2 实验二 具有优先级的线程调度(lab2) 概念欠缺 实验环境 实验目的 1. 熟悉Nachos原有的线程调度策略 2. 设计并实现具有优先级的线程调度策略 实验二 具有优 ...

  7. 操作系统课设--NACHOS试验环境准备、安装与MAKEFILE分析

    山东大学操作系统课设lab1 实验一 NACHOS试验环境准备.安装与MAKEFILE分析(lab1) 实验环境: 分析记录: 1. 准备虚拟机下LINUX宿主操作系统环境 2. NACHOS实验代码 ...

  8. 操作系统课设之简单 shell 命令行解释器的设计与实现

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  9. 操作系统课设之基于信号量机制的并发程序设计

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

最新文章

  1. 【设计模式】备忘录模式
  2. java并发框架支持锁包括,tip/面试题_并发与多线程.md at master · 171437912/tip · GitHub...
  3. unity延迟执行下一行代码_Python代码在Linux环境下执行错误异常
  4. CodeSmith连接mysql
  5. MyBatis无限输出日志
  6. SpringMVC文件上传下载和拦截器
  7. Ping pong【树状数组】
  8. principle中文_principle与principal,长得像,发音还一样!又头疼了!
  9. 三星Galaxy Note 10渲染图曝光:前置打孔双摄+后置横排四摄
  10. 一文详解Python中的*可变参数与**关键字参数
  11. 记录一下自己简单的想法
  12. [原创]浅析汇编之堆栈平衡
  13. Java将html转换PDF文件
  14. 什么样的文案才算是好文案?
  15. 【说明书】迪士尼儿童手表说明书
  16. 虎牙财报奏响游戏直播艰难进行曲
  17. 好女人是一所学校- -
  18. linux卡住重启_linux df -h 命令卡住 解决方法
  19. Side-Tuning:domain adaption
  20. 百慕大财政部批准Velocity Ledger ICO申请

热门文章

  1. sql 分组求和_从零学会SQL:汇总分析 D3
  2. Mysql字符集之utf8和utf8mb4的使用问题
  3. 精选30张炫酷的动态交互式图表,Pandas一键生成,通俗易懂
  4. openpyxl库,1秒合并多张表格并设置图表格式
  5. 牛逼,这个PDF库比其它工具好用99倍
  6. 快手公司厕所装计时器,网友:再也不能带薪拉屎了!
  7. 老码农冒死揭开行业黑幕:如何编写无法维护的代码
  8. 机器学习中如何处理不平衡数据?
  9. 工业级路由器和家用路由器的区别_5G工业级路由器有哪些优势
  10. idea打开提示没有安装java_Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA