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

网站域名到期查询广告推广平台网站

网站域名到期查询,广告推广平台网站,物流网站制作,广告安装师傅接单平台医院里有n(n≤10)个手术室和m(m≤30)个恢复室。每个病人首先会被分配到一个手术室,手术后会被分配到一个恢复室。从任意手术室到任意恢复室的时间均为t1,准备一个手术室和恢复室的时间分别为t2和t3&#xf…

医院里有n(n≤10)个手术室和m(m≤30)个恢复室。每个病人首先会被分配到一个手术室,手术后会被分配到一个恢复室。从任意手术室到任意恢复室的时间均为t1,准备一个手术室和恢复室的时间分别为t2和t3(一开始所有手术室和恢复室均准备好,只有接待完一个病人之后才需要为下一个病人准备)。
k名(k≤100)病人按照花名册顺序排队,T点钟准时开放手术室。每当有准备好的手术室时,队首病人进入其中编号最小的手术室。手术结束后,病人应立刻进入编号最小的恢复室。如果有多个病人同时结束手术,在编号较小的手术室做手术的病人优先进入编号较小的恢复室。输入保证病人无须排队等待恢复室。
输入n、m、T、t1、t2、t3、k和k名病人的名字、手术时间和恢复时间,模拟这个过程。

样例:
输入

5 12 07 5 15 10 16
Jones
28 140
Smith
120 200
Thompson
23 75
Albright
19 82
Poucher
133 209
Comer
74 101
Perry
93 188
Page
111 223
Roggio
69 122
Brigham
42 79
Nute
22 71
Young
38 140
Bush
26 121
Cates
120 248
Johnson
86 181
White
92 140

输出

 Patient          Operating Room          Recovery Room#  Name     Room#  Begin   End      Bed#  Begin    End------------------------------------------------------1  Jones      1    7:00    7:28      3    7:33    9:532  Smith      2    7:00    9:00      1    9:05   12:253  Thompson   3    7:00    7:23      2    7:28    8:434  Albright   4    7:00    7:19      1    7:24    8:465  Poucher    5    7:00    9:13      5    9:18   12:476  Comer      4    7:34    8:48      4    8:53   10:347  Perry      3    7:38    9:11      2    9:16   12:248  Page       1    7:43    9:34      6    9:39   13:229  Roggio     4    9:03   10:12      9   10:17   12:19
10  Brigham    2    9:15    9:57      8   10:02   11:21
11  Nute       3    9:26    9:48      7    9:53   11:04
12  Young      5    9:28   10:06      3   10:11   12:31
13  Bush       1    9:49   10:15     10   10:20   12:21
14  Cates      3   10:03   12:03      8   12:08   16:16
15  Johnson    2   10:12   11:38      4   11:43   14:44
16  White      5   10:21   11:53      7   11:58   14:18Facility Utilization
Type  # Minutes  % Used
-------------------------
Room  1     165   29.68
Room  2     248   44.60
Room  3     258   46.40
Room  4     162   29.14
Room  5     263   47.30
Bed   1     282   50.72
Bed   2     263   47.30
Bed   3     280   50.36
Bed   4     282   50.72
Bed   5     209   37.59
Bed   6     223   40.11
Bed   7     211   37.95
Bed   8     327   58.81
Bed   9     122   21.94
Bed  10     121   21.76
Bed  11       0    0.00
Bed  12       0    0.00

解法:

use std::{cmp::Ordering, collections::BinaryHeap, io};
#[derive(Debug)]
struct Patient {id: usize,name: String,operation_time: usize,recovery_time: usize,room_id: usize,room_begin_time: usize,room_end_time: usize,bed_id: usize,bed_begin_time: usize,bed_end_time: usize,
}
#[derive(Debug, PartialEq, Eq)]
struct Room {id: usize,start_available_time: usize,
}
impl Ord for Room {fn cmp(&self, other: &Self) -> std::cmp::Ordering {if self.start_available_time != other.start_available_time {if self.start_available_time < other.start_available_time {Ordering::Greater} else {Ordering::Less}} else if self.id < other.id {Ordering::Greater} else {Ordering::Less}}
}
impl PartialOrd for Room {fn partial_cmp(&self, other: &Self) -> Option<Ordering> {Some(self.cmp(other))}
}fn main() {let mut buf = String::new();io::stdin().read_line(&mut buf).unwrap();let v: Vec<usize> = buf.split_whitespace().map(|e| e.parse().unwrap()).collect();let n = v[0];let m = v[1];let start_time = v[2] * 60;let t1 = v[3];let t2 = v[4];let t3 = v[5];let k = v[6];let mut rooms = BinaryHeap::new();for i in 0..n {let room = Room {id: i + 1,start_available_time: start_time,};rooms.push(room);}let mut patients: Vec<Patient> = vec![];for i in 0..k {let mut buf = String::new();io::stdin().read_line(&mut buf).unwrap();let name = buf.trim().to_string();let mut buf = String::new();io::stdin().read_line(&mut buf).unwrap();let t: Vec<usize> = buf.split_whitespace().map(|e| e.parse().unwrap()).collect();let patient = Patient {id: i + 1,name: name,operation_time: t[0],recovery_time: t[1],room_id: 0,room_begin_time: 0,room_end_time: 0,bed_id: 0,bed_begin_time: 0,bed_end_time: 0,};patients.push(patient);}let mut room_used_time: Vec<usize> = vec![0; n];for patient in patients.iter_mut() {let aroom = rooms.pop().unwrap();patient.room_id = aroom.id;patient.room_begin_time = aroom.start_available_time;patient.room_end_time = patient.room_begin_time + patient.operation_time;rooms.push(Room {id: aroom.id,start_available_time: patient.room_end_time + t2,});room_used_time[aroom.id - 1] += patient.operation_time;}patients.sort_by(|a, b| {if a.room_end_time != b.room_end_time {if a.room_end_time < b.room_end_time {Ordering::Less} else {Ordering::Greater}} else {if a.room_id < b.room_id {Ordering::Less} else {Ordering::Greater}}});let mut beds: Vec<usize> = vec![start_time; m];let mut bed_used_time: Vec<usize> = vec![0; m];let mut final_time = start_time;for patient in patients.iter_mut() {for j in 0..m {if beds[j] <= patient.room_end_time {patient.bed_id = j + 1;patient.bed_begin_time = patient.room_end_time + t1;patient.bed_end_time = patient.bed_begin_time + patient.recovery_time;beds[j] = patient.bed_end_time + t3;bed_used_time[j] += patient.recovery_time;final_time = final_time.max(patient.bed_end_time);break;}}}patients.sort_by(|a, b| a.id.cmp(&b.id));println!(" Patient          Operating Room          Recovery Room");println!(" #  Name     Room#  Begin   End      Bed#  Begin    End");println!(" ------------------------------------------------------");for i in patients.iter() {print!("{:2}  {:<10}", i.id, i.name);print!("{:2}   {:2}:{:02}   {:2}:{:02}",i.room_id,i.room_begin_time / 60,i.room_begin_time % 60,i.room_end_time / 60,i.room_end_time % 60);println!("     {:2}   {:2}:{:02}   {:2}:{:02}",i.bed_id,i.bed_begin_time / 60,i.bed_begin_time % 60,i.bed_end_time / 60,i.bed_end_time % 60);}println!();println!("Facility Utilization");println!("Type  # Minutes  % Used");println!("-------------------------");let all_time = final_time - start_time;for i in 0..n {println!("Room {:2}    {:4}   {:5.2}",i + 1,room_used_time[i],100.0 * room_used_time[i] as f64 / all_time as f64);}for i in 0..m {println!("Bed  {:2}    {:4}   {:5.2}",i + 1,bed_used_time[i],100.0 * bed_used_time[i] as f64 / all_time as f64);}
}
http://www.mmbaike.com/news/43072.html

相关文章:

  • 购物网站难做吗交友平台
  • 上海做网站多少钱北京优化推广公司
  • 批量建wordpress河北百度竞价优化
  • 网站首页域名如何设置访问快站长工具官网查询
  • 江苏无锡重要通知北京seo平台
  • 做长直播的房地产网站网站建设规划要点详解
  • 免费的网站推广怎么做效果好营销渠道管理
  • 做报告的网站百度代运营
  • 中小企业营销型网站建设重庆seowhy整站优化
  • 品牌建设的主要内容提升网页优化排名
  • 做网站填素材百度点击器下载
  • 公司做网站需要哪些内容公司网络推广服务
  • 企业宣传片报价天津seo排名效果好
  • 网站做wanzhihouseo数据优化
  • 网站内容设计遵循的原则有谷歌关键词排名查询工具
  • 上海的招聘网站有哪些网店运营推广登录入口
  • 做网站用的云控制台seo高级优化方法
  • 建设通网站电话百度指数官方网站
  • 动漫网站网页设计代码百度的推广方式有哪些
  • 梅花手表网站搜索引擎排名优化
  • 网站排名优化建设网站关键词快速排名软件
  • 公司做的网站计入什么海南seo顾问服务
  • 网站域名备案和做网站抖音seo招商
  • 镇江网站搜索优化线上推广平台哪些好
  • 满城建设局网站开网站流程
  • 密云住房和城乡建设部网站首页域名状态查询工具
  • 叫别人做网站后怎么更改密码泰安网站推广优化
  • 网站域名有哪些无锡营销型网站建设
  • wordpress 不同ip江门百度seo公司
  • 用dw做的网站容易变形个人可以做推广的平台有哪些