智能护理中心系统将辖下的护理点分属若干个大区,例如华东区、华北区等;每个大区又分若干个省来进行管理;省又分市,等等。我们将所有这些有管理或护理功能的单位称为“管理结点”。现在已知每位老人由唯一的一个管理结点负责,每个管理结点属于唯一的上级管理结点管辖。你需要实现一个功能,来统计任何一个管理结点所负责照看的老人的数量。

注意这是一个动态问题,即随时可能有老人加入某个管理结点,并且老人是有可能从一个管理结点换到另一个管理结点去的。

输入格式:

输入在第一行中给出 2 个正整数:N(≤104)是老人的总数量,即老人们从 1 到 N 编号;M(≤105)是归属关系的总数。

接下来是 M 行,每行给出一对归属关系,格式为:

A B

表示 A 归属于 BA 或 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 智能护理中心统计相关推荐

  1. 2022 RoboCom 世界机器人开发者大赛-高职组 国赛(RC-v3 智能护理中心统计)

    RC-v3 智能护理中心统计 题意: 给出各管理节点的关系,和每个管理节点的照护老人数量. 两种操作:1. 转院. 2. 查询 该管理节点以下总的老人人数. 知识点: 树. #include<b ...

  2. L2-3 智能护理中心统计

    智能护理中心系统将辖下的护理点分属若干个大区,例如华东区.华北区等:每个大区又分若干个省来进行管理:省又分市,等等.我们将所有这些有管理或护理功能的单位称为"管理结点".现在已知每 ...

  3. 智慧养老解决方案之“RFID养老院智能护理系统“打造临床医护管家

    ​ 近年来,我国医患矛盾加剧.因养老院护理不当引发的医患纠纷屡有发生.苏州新导智能与无锡市第三人民养老院合作研发,在国内首次推出基于超高频无线射频识别(RFID)技术和云计算中间件管理平台的智慧养老解 ...

  4. 数字冰雹 数字孪生城市智能运营中心(IOC)可视化决策系统

    产品概述  数字时代,以5G通讯.物联网.云计算.大数据.人工智能为代表的新一代信息技术蓬勃发展,深入影响着城市运行的方方面面,广泛应用于数字城管.智慧社区.应急管理.智慧环保等领域,推动城市管理向数 ...

  5. AI智能呼叫中心系统,主要应用场景有哪些?

    互联网智能时代,销售人员不再每天拨打数百个电话,当前呼叫中心电话系统被企业常用在电销行业.金融行业.保险.贷款催收行业等外呼销售行业.由传统的呼叫中心基础上不断的进行升级和改善,逐渐演变为人工智能电话 ...

  6. 弘玑Cyclone RPA助力东兴证券建立智能财务中心,以自动化为业务提质增效

    当前,飞速发展的数字技术可以助力企业建立智能财务服务中心,成为智能化转型的催化剂. 在此大背景下,弘玑Cyclone携手东兴证券股份有限公司(以下简称"东兴证券"),为实现更高成本 ...

  7. 基于人工智能和物联网的“智能护理

    导语 本文将以老年智能护理为例解释如何使用Waylay平台结合不同的AI技术.该项目的核心目标是提供一种解决方案:向护理人员和家人确认他们所照顾的人员健康情况.下图介绍了所有相关的参与者. 在这个用例 ...

  8. 华为服务器bmc默认地址_智能数据中心和智慧园区:华为的单点突破与全局效应...

    如果说过去的数据中心和园区的更新发展主要遵循摩尔定律的话,那么在如今5G.物联网.大数据.人工智能等新ICT技术喷薄而发的时代中,数据已经成为数字化世界中的生产资料,其重要性与日俱增.因此,数据中心和 ...

  9. 人工智能在语音和数字图像处理领域有哪些具体化应用_智能呼叫中心系统有哪些优势...

    近年来,随着科技的发展特别是人工智能技术.云计算.大数据的到来,新技术逐渐渗入人们日常生活中的各行各业里面,以机器人来代替人工处理繁重的任务变得普遍.在人工智能时代下,新一代智能呼叫中心系统应运而生, ...

最新文章

  1. 扩增子分析QIIME. 3以管理员安装QIIME1.9.1至Ubuntu16.04
  2. android GLSurfaceView渲染模式
  3. java什么是成员域成员方法,java多态中的成员绑定
  4. shell实例第15讲:俄罗斯方块游戏
  5. spring boot实战(第七篇)内嵌容器tomcat配置
  6. mysql的二级分区_分布式数据库一级分区和二级分区
  7. 安卓中bundle的使用
  8. 【Oracle】sqlplus中 删除键backspace时出现^H
  9. HDU2012 素数判定【入门】
  10. flutter实现Icon可以用Image替换
  11. 录音文件下载_如何免费下载受版权保护的收费音乐
  12. 计算机启动显示安装程序正在启动服务,电脑停在“安装程序正在启动服务”解决办法...
  13. 产品经理的小白面试~
  14. Labelme转VOC格式
  15. laravel框架生產vender文件夹
  16. 点击 进入 QQ临时会话 界面
  17. vue移动端上传文件插件_轻量级Vue图片上传插件——Vue-core-image-Upload
  18. 360安全浏览器如何锁定极速模式
  19. Java案例——猫狗案例加入跳高功能分析及其代码实现(面向对象)
  20. 【升级pip;查看pip版本】

热门文章

  1. 通用计算机生命周期,产品全生命周期通用代码在中 - 电子技术 - 电子发烧友网...
  2. gogole调试请求体的数据怎么知道
  3. 命令行连接mysql时出现Authentication plugin ‘caching_sha2_password‘ cannot be loaded: 找不到指定的模块
  4. PTA - 数据库合集56
  5. 5分钟上手视频压缩神器:HandBrake
  6. java雷电游戏源码项目
  7. 莲花SVN无限期试用方法
  8. springboot+vue+java校园交友信息推荐网站
  9. 什么叫冷备用状态_开关在运行、冷备用、热备用分别指开关在什么状态?
  10. python判断质数合数奇数偶数_Python 判断合数质数