实验七 数组(二)---阿迪看医生

  • 0、题目概述
    • 【问题描述】
    • 【输入形式】
    • 【输出形式】
    • 【样例输入】
    • 【样例输出】
    • 【样例说明】
    • 【评分标准】
  • 1、分析
    • 方法一
    • 方法二
  • 2、解决方案
  • 3、代码
  • 4、总结

0、题目概述

【问题描述】

  这几天同学们总是对阿迪议论纷纷,这使得他很烦恼,似乎产生了一些抑郁,头也有点痛,打不起精神,他只好去看医生。然而,他只有去看过 n 个医生之后才能确诊病情,每个医生都需要上一个医生的诊断结果,因此他必须按顺序去预约每个医生,也就是说,他必须先去看医生1,然后再去看医生2,然后是医生3,等等。只有到最后一个医生那里才能确诊,且每天只能看一个医生。从今天开始,每个医生都有一个固定的出诊安排表,医生 i 在第 si 天看病人,然后在之后的每个第 di 天看诊。因此,他只在 si、si+di、si+2di、... 这些天工作。预约每个医生有些困难,他想知道看完所有医生至少需要多少天?

【输入形式】

   输入的第一行一个正整数 n ,表示医生的数量。接下来的 n 行,每行两个正整数 si 和 di,表示第 i 个医生的工作情况。

【输出形式】

   输出一行一个整数,表示阿迪看完最后一个医生的天数。

【样例输入】

3
2 2
1 2
2 2

【样例输出】

4

【样例说明】

第1位医生从第2天开始看病,然后在第4、6、8…天看诊

第2位医生从第1天开始看病,然后在第3、5、7…天看诊

第3位医生从第2天开始看病,然后在第4、6、8…天看诊

因此,阿迪可以在第2天去看第1位医生,然后在第3天去看第2位医生,第4天看第3位医生。

【评分标准】

1、分析

这一道题并不复杂,只需要模拟每一天能不能看医生就可以了。

方法一

现将所有医生的值班表和周期用一个二维数组保存,用一个变量记录问诊到哪一位医生,用一个计数器从第一天开始计录天数。如果当天当前医生可以接诊,则指向下一位医生的值班时间和周期。当所有医生都记录完(指完)之后,天数记录器的值就是答案。

方法二

用数组是不可能的
因为医生的值班表是需要问诊的医生的顺序提供的,所以我们可以问诊完一个医生再读入下一位医生的值班表和周期
小优化:天数不需要每次只加一天。看下一位医生的条件是当前的医生看完,所以可以从医生的角度出发。当医生的值班日期第一次大于当前的天数时,这个日期就是问诊这位医生的时间。只需要将这个日期当做当前天数,继续寻找下一位医生的值班日期第一次大于当前的天数即可。

2、解决方案

同分析。注意天数加减时的1。

3、代码

这里只提供方法二

#include <iostream>为避免学校oj系统查重抄袭,所有变量在使用时请进行修改
using namespace std;
int main()
{int a,b,c,d=1,e=1;cin>>a;while (e<=a) //拜访a次医生结束循环{cin>>b>>c;while (b<=d){b+=c; //计算当前医生的只把时间第一次大于当天数的日期}d=b;e++; //记录拜访了多少位医生}cout<<d;return 0;
}

4、总结

这一题并不复杂。总体思想是:下一位医生的问诊时间晚于当前医生的问诊时间。
前面的各种小优化解释的有些繁琐。如果无法理解,采用方法一即可。
大致思路如下:

while (doctor[i]<doctor[i-1]) //如果当前天数小于上一位医生的天数doctor+=zhouqi;           //自加值班周期

如果上面的代码有错烦请指出。

实验七 数组(二)---阿迪看医生相关推荐

  1. 题快速公交 |小希的新工作 |岁月留痕 |排队喝水 |阿迪看医生 |松雅的花园 |拜访朋友 |猴导师 |贪心的阿迪 |飞机起飞时间安排 |松雅的旅馆 |小女孩和楼梯|小希与火车|基于神经网络的垃圾分类

    写在前面:本题解旨在帮助进行作业参考,为学习升华所用.登高自卑,戒骄戒躁. 第一题:快速公交BRT 思路分析:本题考察数组基本应用,强模拟的题目. #include<iostream> u ...

  2. 3348 数据结构实验之数组二:稀疏矩阵

    数据结构实验之数组二:稀疏矩阵 #include<iostream> #include<iomanip> using namespace std; int y,x; struc ...

  3. HNU实验五05阿迪看医生

    [问题描述] 这几天同学们总是对阿迪议论纷纷,这使得他很烦恼,似乎产生了一些抑郁,头也有点痛,打不起精神,他只好去看医生.然而,他只有去看过 n 个医生之后才能确诊病情,每个医生都需要上一个医生的诊断 ...

  4. 【练习四 数组(强化) 编程题 9. 阿迪看医生 】

    [问题描述]  这几天同学们总是对阿迪议论纷纷,这使得他很烦恼,似乎产生了一些抑郁,头也有点痛,打不起精神,他只好去看医生.然而,他只有去看过 n 个医生之后才能确诊病情,每个医生都需要上一个医生的诊 ...

  5. 2021-11-14阿迪看医生

    [问题描述] 这几天同学们总是对阿迪议论纷纷,这使得他很烦恼,似乎产生了一些抑郁,头也有点痛,打不起精神,他只好去看医生.然而,他只有去看过 n 个医生之后才能确诊病情,每个医生都需要上一个医生的诊断 ...

  6. 数据结构实验之数组二:稀疏矩阵

    Description 对于一个n*n的稀疏矩阵M(1 <= n <= 1000),采用三元组顺序表存储表示,查找从键盘输入的某个非零数据是否在稀疏矩阵中,如果存在则输出OK,不存在则输出 ...

  7. c语言实验7字符串,C语言实验六(第七章二维数组字符串数组)

    C语言实验六(第七章二维数组字符串数组) 第 1 页 共 7 页第七章二维数组.字符串数组题[书面作业] 以书面作业形式上交,2010 年 11 月 1 日课堂交三道题的源程序1. 编写一个主函数:用 ...

  8. 超星高级语言程序设计实验作业 (实验04 数组及其在程序设计中的应用)(二)

    超星高级语言程序设计实验作业 实验04 数组及其在程序设计中的应用(二) 注:以下内容仅供交流,代码都是本人自己写的,还请同学们先自己编写再进行交流. 7.检验矩阵重复元素 题目描述:编写程序判断任意 ...

  9. 【正点原子Linux连载】第七十二章 RGB转HDMI实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

最新文章

  1. vue-cli eslint 规则
  2. jquery选择器案例分享
  3. python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程
  4. etmvc mysql乱码_etmvc中集成spring使用druid连接池
  5. Maven 持续介绍与注意事项
  6. sqlite3的命令简单说明
  7. SharePoint 2010-在ribbon上添加表单,将默认control加到自定义group中
  8. 深入理解JVM虚拟机读书笔记——垃圾回收算法
  9. 微信小程序——案例:收货信息表单
  10. 深圳腾讯地图地铁站经纬度
  11. 关于debug调试在Controller中形参PageWeb<T>(即分页封装泛型)的pageNum,pageSize赋值问题
  12. 计算机考研复试——数据库篇
  13. 首次登录强制修改密码
  14. 全栈式PHP集成环境-laragon(二) 配置、使用
  15. 为什么HashMap的长度一定是2的次幂?
  16. web的首屏加载优化
  17. SQLite数据库database is locked解决
  18. Regulator相关GPIO控制使用流程简析
  19. linux 磁盘空间查询
  20. java字符串转16进制

热门文章

  1. 机器学习——评估方法
  2. 数据库应用+SQL优化+Git
  3. Pangu and Stones(区间 dp)
  4. vue实现省市区三级联动地址选择组件
  5. 阿里云服务器托管-云服务器托管介绍
  6. 看完这几道 JavaScript 面试题,让你与考官对答如流(上)
  7. Python 插件化开发
  8. 自己动手爬取免费代理IP
  9. Python每日一练——列表,元组和字典第十一关:del和pop的用法
  10. 厦大 计算机系教授,赵冲-厦门大学计算机科学系