RC-u2 智能服药助手(raicom睿抗机器人CAIP编程技能赛)

2024-04-24 23:12

本文主要是介绍RC-u2 智能服药助手(raicom睿抗机器人CAIP编程技能赛),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • RC-u2 智能服药助手
    • 题目描述
    • 模拟

RC-u2 智能服药助手

题目描述

智能看护中很重要的环节是安排需要服药的老年人的服药计划。

已知机器人需要照顾的某位老年人需要服用 N 种药物,但某些药物不宜间隔过短服用 —— 比如降糖药一般遵医嘱日服 3 次,两次之间需要间隔至少 4 小时。当需要服用的药物比较多,医嘱比较复杂时,如何保证每位老人的服药计划是安全合理的,就成为一个挑战。

本题给定一套服药计划,请你检查一下计划是否存在问题。

输入格式:
输入第一行给出两个整数 N,M(1≤N,M≤103 ),表示老人需要服用 N 种药物(药物种类从 1 到 N 编号),对应的服药计划有 M 条记录。

接下来首先在一行中给出 N 个用空格隔开的整数 Ti (−1≤Ti ≤100,Ti≠0),表示编号为 i 的药物需要间隔至少 Ti 个单位时间服用。如果 Ti 为 −1,则说明这种药物没有间隔要求。

接下来的 M 行,每行给出一条服药计划中的记录,格式为:首先给出两个非负整数 t 和 k (0≤t≤109 ,0≤k≤N),表示服药的时刻为 t,服用了 k 种药物;然后紧接着列出 k 个数,每个数对应 t 时刻要吃的药物种类的编号。一行中的数字之间以空格分隔。

题目保证:记录按照服药时刻 t 的递增顺序给出;每一时刻服用的药物种类各不相同。注意:同一种药物可能需要在不同的时刻重复服用。如果一位老人在 ti 时刻和 tj 时刻服用了同一种药物,则他服用的间隔时间为 ∣ti −tj∣。

输出格式:
按照输入顺序检查每一条记录中的每一种药物。如果在 Y 时刻不宜服用药物 X,则在一行中输出:

Don't take X at Y!

注意:老人收到提醒后会按照提醒不服用指定的药物。

输入样例:

10 6
1 2 3 4 5 -1 -1 -1 -1 -1
0 1 1
1 2 1 2
2 1 2
3 2 1 3
5 3 1 3 4
6 2 1 4

输出样例:

Don't take 2 at 2!
Don't take 3 at 5!
Don't take 4 at 6!

模拟

#include<bits/stdc++.h> // 引入所有标准库
using namespace std; // 使用标准命名空间// 定义一个结构体node来存储每种药物的信息
struct node
{int tim; // 服用该种药物需要间隔的最小时间单位int qian=-1; // 上一次服用该药物的时间,初始化为-1
}p[1010]; // 定义结构体数组,最多支持1010种药物int main()
{int n,m; // n表示药物种类数量,m表示服药计划的记录条数cin>>n>>m; // 读取n和m的值for(int i=1;i<=n;i++)cin>>p[i].tim; // 读取每种药物间隔时间的要求while(m--) // 循环m次,读取每条服药记录{int t,k,id[1010]; // t表示服药的时刻,k表示同时服用的药物数量,id数组存储服用的药物编号cin>>t>>k; // 读取服药时刻和药物数量for(int i=0;i<k;i++) // 循环读取每种要服用的药物编号{cin>>id[i]; // 读取药物编号if(p[id[i]].tim==-1) continue; // 如果这种药物没有间隔时间的要求,则跳过if(p[id[i]].qian==-1) // 如果这是第一次服用这种药物p[id[i]].qian=t; // 记录下服药的时间else // 如果之前服用过这种药物{if(t-p[id[i]].qian<p[id[i]].tim) // 检查服药时间间隔是否少于要求printf("Don't take %d at %d!\n",id[i],t); // 如果是,则输出不应该服用的警告信息elsep[id[i]].qian=t; // 否则,更新上一次服药时间为当前时间}}}return 0; // 程序结束
}

这篇关于RC-u2 智能服药助手(raicom睿抗机器人CAIP编程技能赛)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933102

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Rust 智能指针的使用详解

《Rust智能指针的使用详解》Rust智能指针是内存管理核心工具,本文就来详细的介绍一下Rust智能指针(Box、Rc、RefCell、Arc、Mutex、RwLock、Weak)的原理与使用场景,... 目录一、www.chinasem.cnRust 智能指针详解1、Box<T>:堆内存分配2、Rc<T>:

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁