Covid


Problem Description

科学家小沃沃在研究病毒传播的规律,从而控制疫情。有 n 个人,编号分别为 1,2,...,n。我们用荧光粉代替病毒,编号为 1 的人,在第 0 时刻涂上了荧光粉,剩下的人在第 0 时刻没有涂。
对于第 i 个人,我们知道这个人在哪些时刻出现在了哪些地方。
如果时刻 t,某个人和身体上有荧光粉的人,出现在了同一地点,那么从时刻 t 以后,这个人也会沾上荧光粉。
从小到大输出实验结束后身体上有荧光粉的人的编号。


Input

第一行一个整数 T(1≤T≤20)表示 T 组数据。对于每组数据,第一行一个整数 n(1≤n≤20000)表示 n 个人。 对于第 i 个人,第一行输入一个整数 len [i] (1≤len[i]≤100)表示这个人的活动轨迹。 接下来 len[i]行,每行输入两个整数 t,p(1≤t≤100,1≤p≤10)表示这个人t时刻出现在了p位置,保证t按严格递增的顺序给出。 除了这 len[i]个时刻,这个人都呆在家里,或者换句话说,他/她不在任何位置。 保证len[1]+len[2]+...+len[n]≤200000。


Output

对于每组数据输出一行,表示所有患者的编号。按编号从小到大输出。


样例输入

2
4
2
1 1
2 2
3
2 2
3 3
4 4
1
4 4
1
2 1
3
3
1 1
3 1
6 1
3
4 1
5 1
6 1
1
5 1


样例输出

1 2 3
1 2
我的思路呢,是在输入的时候,对数据进行一个预处理,将某一时刻在某一个位置的人进行分类,然后逐个时间逐个位置的去处理,如果某一时刻的某一个位置有得病的人,则将在这个时间,在这个位置的所有人全都标记一遍。

本人比赛时的AC代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{int T;scanf("%d",&T);while(T--){int n;scanf("%d",&n);int a[n+10]={0,1};//记录某一号人是否得病vector<int>se[120][15];  //一个三维数组,来表示在某一时刻的某一位置有谁int maxx=0;for(int i=1;i<=n;i++){//i代表第几号人int m;scanf("%d",&m);/*预处理,将对应的人放在某一时刻的某一位置*/for(int j=1;j<=m;j++){   //j来表示出门次数int p,q;scanf("%d%d",&p,&q);    maxx=max(maxx,p);  //貌似没啥用se[p][q].push_back(i);   //将人放到对应的位置}}for(int i=1;i<=110;i++){for(int k=1;k<=10;k++){for(int j=0;j<se[i][k].size();j++){if(a[se[i][k][j]]==1) {//看看在i时刻j位置的人是否有得病的,如果有则将此时刻在这个位置的所有人都标记一下for(int p=0;p<se[i][k].size();p++){a[se[i][k][p]]=1;}break;}}}}for(int i=1;i<=n;i++){if(a[i]){/*最后输出,貌似程序不卡这个格式的空格*/if(i==1)printf("%d",i);elseprintf(" %d",i);}}printf("\n");}
}

2020 年百度之星·程序设计大赛 - 初赛二相关推荐

  1. 2020 年百度之星程序设计大赛 - 初赛二

    Poker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

  2. 1001. Poker (思维 / 模拟)(2020年百度之星*程序设计大赛-初赛二)

    传送门 思路: 嗐,又是这种模拟题,每次都不长记性看数据范围,非得傻傻的去循环模拟T一次才知道思考.呜呜呜太菜了. 既然每次至少拿出m,且求的是最多次数,那我们每次就拿m出来. 先将m * p%上取整 ...

  3. 2020年百度之星·程序设计大赛-初赛一

    Pro.ID 1001 Drink 题解 1002 GPA 题解 1003 Dec 题解 1004 Civilization 1005 Rotate 题解 1006 Matrix 1007 Mosqu ...

  4. 2020 年百度之星·程序设计大赛 - 初赛一 Civilization BFS广搜

    problem Civilization Accepts: 619 Submissions: 2182 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...

  5. 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理

    problem Dec Accepts: 1284 Submissions: 4572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  6. 2020 年百度之星·程序设计大赛 - 初赛一 GPA DFS深搜

    problem GPA Accepts: 1554 Submissions: 3947 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  7. 2020 年百度之星·程序设计大赛 - 初赛一 Drink

    Problem Description 我们有 nn 种不同的饮料,每种饮料有无限多瓶,第 ii 种饮料一瓶提供 x[i]x[i] 毫升的水分,包含 y[i]y[i] 卡路里. 现在我们需要选择一种饮 ...

  8. 2020 年百度之星·程序设计大赛 - 初赛一题解

    Drink 对于每一种饮料,都可以算出最少需要多少瓶,从而知道最少摄入多少卡路里,从中找个最优值. #include <iostream> #include <cstdio>u ...

  9. 2020年百度之星·程序设计大赛 - 初赛一(前三题)

    文章目录 Drink[贪心] 题目描述 测试样例 解题思路 赛时AC代码 赛后优化AC代码 总结: GPA[枚举] 题目描述 测试样例 解题思路 赛时WA代码 赛时AC代码 总结: Dec[反向dp+ ...

  10. 2020 年百度之星·程序设计大赛 - 初赛三-Discount

    Discount Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

最新文章

  1. python卸载pip重新安装_pip无法正常使用卸载并重新安装
  2. 通用寄存器的专门用途
  3. openssh升级sftp_Centos7 升级 openSSH 到7.9p1的详细步骤
  4. 一款数据人专属的红包封面,速度领,手慢无
  5. NFT去中心化自治组织YGG完成130万美元融资,Delphi Digital领投
  6. Julia : 关于Atom中的Julia代码排版
  7. java json 合并_java中,怎么把两个jsonObject合并成一个?
  8. SecureCRT下载安装与破解
  9. MySQL 集群Cluster
  10. 简单的路由器设置下一条(小白像)
  11. 服务器淘汰cpu组装的电脑,从服务器淘汰下来的至强cpu还可以用多久
  12. 2020计算机保研实录
  13. 利用函数求平均分及方差
  14. 黑苹果gtx1050显卡驱动问题
  15. 2021年电商企业倒闭名单
  16. Java中的逻辑控制与方法(上)
  17. MySQL数据库的约束
  18. 微信小程序(看文档写实例八)微信小程序课堂宝APP实现练习模块前台
  19. 中科磐云 隐写术应用
  20. 基于SNMP在网络监控中的应用1_OLT设备的监控

热门文章

  1. python人脸识别方法_python实现人脸识别代码
  2. APP自动化测试框架----环境搭建(java)
  3. linux 蓝牙测试程序下载,Linux下蓝牙测试软件包和命令介绍
  4. mysql ocp考试准备多久_MySQL OCP考试复习系列--开篇:了解MySQL考试
  5. 需求文档(PRD)撰写指南
  6. OpenCL: OpenCL快速入门教程
  7. 工程流体力学笔记暂记35 (平板层流边界层和平板混合边界层)
  8. doip 源码_DoIP—协议框架
  9. 机器学习算法之SVM的多分类
  10. Tableau实战 楼市降温分析(六)现期房销售面积及累计增长