PTA 智能护理中心统计
智能护理中心系统将辖下的护理点分属若干个大区,例如华东区、华北区等;每个大区又分若干个省来进行管理;省又分市,等等。我们将所有这些有管理或护理功能的单位称为“管理结点”。现在已知每位老人由唯一的一个管理结点负责,每个管理结点属于唯一的上级管理结点管辖。你需要实现一个功能,来统计任何一个管理结点所负责照看的老人的数量。
注意这是一个动态问题,即随时可能有老人加入某个管理结点,并且老人是有可能从一个管理结点换到另一个管理结点去的。
输入格式:
输入在第一行中给出 2 个正整数:N(≤104)是老人的总数量,即老人们从 1 到 N 编号;M(≤105)是归属关系的总数。
接下来是 M 行,每行给出一对归属关系,格式为:
A B
表示
A
归属于B
。A
或B
如果是某个管理结点,则用不超过 4 个大写英文字母表示其名称;如果是某位老人,则用老人的编号表示。这里每个A
保证只有唯一的上级归属B
,且只有这个中心系统本身是没有上级归属的。此外,输入保证没有老人自己承担管理结点的角色,即B
一定是一个管理结点,不可能是老人的编号。但一个管理结点既可以管辖下级结点,也可以直接护理一部分老人。随后每行给出一个指令,格式为:
指令 内容
如果
指令
为T
,则表示有老人要入院或转院,内容
是某老人的编号和要去的管理结点的名称,以空格分隔;如果指令
为Q
,则内容
是一个管理结点的名称,意思是统计这个结点所负责照看的老人的数量;如果指令
为E
,则表示输入结束。题目保证指令总数不会超过 100 个。输出格式:
对每个
T
指令,将对应的老人转存到对应的管理结点名下;对每个Q
指令,在一行中输出对应管理结点所负责照看的老人的数量。读到E
指令就结束程序。输入样例:
10 23 EAST CNTR ZJ EAST SD EAST WEST CNTR SX WEST HZ ZJ JN SD 2 JN 8 JTH 6 XAHP 4 ZDYH 5 ZDYH ZDYH HZ HUZ ZJ JX ZJ 1 JX 3 JN WZ ZJ XAHP XIAN XIAN SX YL SX JTH XIAN 7 XAHP Q EAST T 1 YL Q EAST Q SX T 8 ZDYH Q HZ Q HUZ T 10 XAHP Q CNTR E
输出样例:
5 4 4 3 0 9
思路:
三个map:
1.中心字符串对应数字;
2.老人对应中心数字;
3.中心对应中心;
unordered_map<int,int>zx_zx;
unordered_map<int,int>lr_zx;
unordered_map<string,int>si;
中心添加一名老人:
void up(int x){if(x == 0)return;num[x] ++;up(zx_zx[x]);
}
中心减少一名老人:
void down(int x){if(x == 0)return;num[x] --;down(zx_zx[x]);
}
中心增加当前中心的人数:
void fill(int x,int nu){if(x == 0)return ;num[x] += nu;fill(zx_zx[x],nu);
}
总代码:
#include<bits/stdc++.h>
using namespace std;
int n , m , k , T , ans;
unordered_map<int,int>zx_zx;
unordered_map<int,int>lr_zx;
unordered_map<string,int>si;
int num[100005];
void up(int x){if(x == 0)return;num[x] ++;up(zx_zx[x]);
}
void down(int x){if(x == 0)return;num[x] --;down(zx_zx[x]);
}
void fill(int x,int nu){if(x == 0)return ;num[x] += nu;fill(zx_zx[x],nu);
}
int main(){cin >> n >> m;int idx = 0;while(m --){string a , b;cin >> a >> b;if(!si[b])si[b] = ++idx;if(a.back() >= '0' && a.back() <= '9'){lr_zx[stoi(a)] = si[b];up(si[b]);}else{if(!si[a])si[a] = ++idx;zx_zx[si[a]] = si[b];fill(si[b],num[si[a]]);}}char ch;while(cin >> ch){if(ch == 'E')break;if(ch == 'T'){int a ;string b;cin >> a >> b;if(lr_zx[a] != 0)down(lr_zx[a]);lr_zx[a] = si[b];up(si[b]);}else{string b;cin >> b;cout << num[si[b]] << endl;}}
}
PTA 智能护理中心统计相关推荐
- 2022 RoboCom 世界机器人开发者大赛-高职组 国赛(RC-v3 智能护理中心统计)
RC-v3 智能护理中心统计 题意: 给出各管理节点的关系,和每个管理节点的照护老人数量. 两种操作:1. 转院. 2. 查询 该管理节点以下总的老人人数. 知识点: 树. #include<b ...
- L2-3 智能护理中心统计
智能护理中心系统将辖下的护理点分属若干个大区,例如华东区.华北区等:每个大区又分若干个省来进行管理:省又分市,等等.我们将所有这些有管理或护理功能的单位称为"管理结点".现在已知每 ...
- 智慧养老解决方案之“RFID养老院智能护理系统“打造临床医护管家
近年来,我国医患矛盾加剧.因养老院护理不当引发的医患纠纷屡有发生.苏州新导智能与无锡市第三人民养老院合作研发,在国内首次推出基于超高频无线射频识别(RFID)技术和云计算中间件管理平台的智慧养老解 ...
- 数字冰雹 数字孪生城市智能运营中心(IOC)可视化决策系统
产品概述 数字时代,以5G通讯.物联网.云计算.大数据.人工智能为代表的新一代信息技术蓬勃发展,深入影响着城市运行的方方面面,广泛应用于数字城管.智慧社区.应急管理.智慧环保等领域,推动城市管理向数 ...
- AI智能呼叫中心系统,主要应用场景有哪些?
互联网智能时代,销售人员不再每天拨打数百个电话,当前呼叫中心电话系统被企业常用在电销行业.金融行业.保险.贷款催收行业等外呼销售行业.由传统的呼叫中心基础上不断的进行升级和改善,逐渐演变为人工智能电话 ...
- 弘玑Cyclone RPA助力东兴证券建立智能财务中心,以自动化为业务提质增效
当前,飞速发展的数字技术可以助力企业建立智能财务服务中心,成为智能化转型的催化剂. 在此大背景下,弘玑Cyclone携手东兴证券股份有限公司(以下简称"东兴证券"),为实现更高成本 ...
- 基于人工智能和物联网的“智能护理
导语 本文将以老年智能护理为例解释如何使用Waylay平台结合不同的AI技术.该项目的核心目标是提供一种解决方案:向护理人员和家人确认他们所照顾的人员健康情况.下图介绍了所有相关的参与者. 在这个用例 ...
- 华为服务器bmc默认地址_智能数据中心和智慧园区:华为的单点突破与全局效应...
如果说过去的数据中心和园区的更新发展主要遵循摩尔定律的话,那么在如今5G.物联网.大数据.人工智能等新ICT技术喷薄而发的时代中,数据已经成为数字化世界中的生产资料,其重要性与日俱增.因此,数据中心和 ...
- 人工智能在语音和数字图像处理领域有哪些具体化应用_智能呼叫中心系统有哪些优势...
近年来,随着科技的发展特别是人工智能技术.云计算.大数据的到来,新技术逐渐渗入人们日常生活中的各行各业里面,以机器人来代替人工处理繁重的任务变得普遍.在人工智能时代下,新一代智能呼叫中心系统应运而生, ...
最新文章
- 扩增子分析QIIME. 3以管理员安装QIIME1.9.1至Ubuntu16.04
- android GLSurfaceView渲染模式
- java什么是成员域成员方法,java多态中的成员绑定
- shell实例第15讲:俄罗斯方块游戏
- spring boot实战(第七篇)内嵌容器tomcat配置
- mysql的二级分区_分布式数据库一级分区和二级分区
- 安卓中bundle的使用
- 【Oracle】sqlplus中 删除键backspace时出现^H
- HDU2012 素数判定【入门】
- flutter实现Icon可以用Image替换
- 录音文件下载_如何免费下载受版权保护的收费音乐
- 计算机启动显示安装程序正在启动服务,电脑停在“安装程序正在启动服务”解决办法...
- 产品经理的小白面试~
- Labelme转VOC格式
- laravel框架生產vender文件夹
- 点击 进入 QQ临时会话 界面
- vue移动端上传文件插件_轻量级Vue图片上传插件——Vue-core-image-Upload
- 360安全浏览器如何锁定极速模式
- Java案例——猫狗案例加入跳高功能分析及其代码实现(面向对象)
- 【升级pip;查看pip版本】
热门文章
- 通用计算机生命周期,产品全生命周期通用代码在中 - 电子技术 - 电子发烧友网...
- gogole调试请求体的数据怎么知道
- 命令行连接mysql时出现Authentication plugin ‘caching_sha2_password‘ cannot be loaded: 找不到指定的模块
- PTA - 数据库合集56
- 5分钟上手视频压缩神器:HandBrake
- java雷电游戏源码项目
- 莲花SVN无限期试用方法
- springboot+vue+java校园交友信息推荐网站
- 什么叫冷备用状态_开关在运行、冷备用、热备用分别指开关在什么状态?
- python判断质数合数奇数偶数_Python 判断合数质数