Online Meeting

题目描述:

题目大概讲述的是,输入一部分团队参与者会议的在线以及下线的记录(不完整),让我们输出有多少个团队参与者可能为团队领导者,并且把这些可能的团队参与者输出出来。(领导者具备的特征是,只要有团队成员在线的会议,领导者必定在线)。

题目分析:

首先,我们先对输入的数据进行分析,先判断出哪些团队成员不在该记录当中,这些成员均有可能时时刻刻在线,因此我们需要对这部分成员作特殊处理。

接下来我们对输入的在线以及下线记录进行处理,如果当前我们讨论的这个记录是某位团队成员上线的话,那么我们需要判断在这位团队成员上线之前是否存在其他成员在线,如果存在的话,那么证明这名成员不是领导者,记录这位成员在线。否则暂时记录这名成员是领导者。

如果当前我们讨论的这个记录是某位团队成员下线的话,那么我们需要判断在这位团队成员下线之后是否存在其他成员在线,如果存在的话,那么证明这名成员不是领导者,记录这位成员下线。否则暂时记录这名成员是领导者。

经过上述处理,如果暂时领导者的个数超过1的话,那么这些成员都不是领导者,因为在输入记录当中,领导者只能是一个,不存在多个。

剩下的没有标记为不是领导者的成员均有可能是领导者,按照题目格式输出即可。

代码:

#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <cstdlib>
#include <stdlib.h>
#include <cmath>
#include <math.h>
#include <algorithm>
#include <cstring>
#include <string>
#include <string.h>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <bitset>
#include <deque>
#define reg register
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define min(a,b) (a<b?a:b)
#define max(a,b) (a>b?a:b)
#define lowbit(x) (x&(-x))
using namespace std;
const int Maxn=1e5+5;
const int Maxm=1e5+5;
struct node
{int id;char state;
};
node a[Maxn];
bool visit[Maxn];
set <int> online,s;
int main()
{int n,m;scanf("%d%d",&n,&m);for (reg int i=1;i<=m;i++){cin>>a[i].state>>a[i].id;if (a[i].state=='-' && !visit[a[i].id]) online.insert(a[i].id);visit[a[i].id]=1;}memset(visit,0,sizeof(visit));for (reg int i=1;i<=m;i++){if (a[i].state=='+'){if (online.size()>0) visit[a[i].id]=1;else s.insert(a[i].id);online.insert(a[i].id);continue;}if (online.size()>1) visit[a[i].id]=1;else s.insert(a[i].id);online.erase(a[i].id);}if (s.size()>1){for (set <int>::iterator it=s.begin();it!=s.end();it++){visit[*it]=1;}}int tot=0;for (reg int i=1;i<=n;i++)if (!visit[i]) tot++;printf("%d\n",tot);for (reg int i=1;i<=n;i++)if (!visit[i]) printf("%d ",i);return 0;
}

Online Meeting相关推荐

  1. Scrum Meeting 博客汇总

    Scrum Meeting 博客汇总 一.Scrum Meeting 1. Alpha 第一次 Scrum Meeting 第二次 Scrum Meeting 第三次 Scrum Meeting 第四 ...

  2. [Beta]第二次 Scrum Meeting

    [Beta]第二次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/6 22:00 30min 大运村公寓6F楼道 附Github仓库:WEDO 例会照片 工作情况总 ...

  3. [Beta]第五次 Scrum Meeting

    [Beta]第五次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/13 22:00 30min 大运村公寓6F楼道 附Github仓库:WEDO 例会照片 (一人上 ...

  4. [Gamma阶段]第十次Scrum Meeting

    Scrum Meeting博客目录 [Gamma阶段]第十次Scrum Meeting 基本信息 名称 时间 地点 时长 第十次Scrum Meeting 19/06/06 大运村寝室6楼 30min ...

  5. Leetcode 252, 253. Meeting Rooms

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  6. 【Alpha】Daily Scrum Meeting第七次

    一.本次Daily Scrum Meeting主要内容 每个人学习情况 任务安排 二.任务安排 学号尾数 昨天做的任务 今天做的任务 任务用时 明天要做的任务 612 完成安卓端计时记录存入数据库和查 ...

  7. LeetCode 252. Meeting Rooms

    原题链接在这里:https://leetcode.com/problems/meeting-rooms/ 题目: Given an array of meeting time intervals co ...

  8. 【Beta阶段】第二次Scrum Meeting!

    每日任务内容: 本次会议为第二次Scrum Meeting会议~ 由于本次会议项目经理召开时间较晚,所以在公寓7层召开,所以女生没来-召开时间大家集会10分钟,经理与后端探讨20分钟. 队员 昨日完成 ...

  9. Cf Round #403 B. The Meeting Place Cannot Be Changed(二分答案)

    The Meeting Place Cannot Be Changed 我发现我最近越来越zz了,md 连调程序都不会了,首先要有想法,之后输出如果和期望的不一样就从输入开始一步一步地调啊,tmd现在 ...

  10. Codeforces Round #433(Div. 2) D. Jury Meeting(贪心)

    题目链接:Codeforces Round #433(Div. 2) D. Jury Meeting 题意: 有n个城市,每个城市有一个人,现在要让这些人来0号城市在一起k天,然后回去. 现在有m个日 ...

最新文章

  1. Junit中error和failure区别
  2. mxGraph改变图形大小重置overlay位置
  3. 如何让自己的简历在万人从中一眼就能被HR选中
  4. Java数三退一问题代码_数三退一问题算法(Java)
  5. Pxe+Kickstart批量网络安装操作系统
  6. Pascal's Triangle II
  7. 【Python学习】内置函数(不断更新)
  8. Java技术大咖为什么都有写博客的习惯呢?
  9. leetcode - 155. 最小栈
  10. BoostrapTable的refresh和refreshOptions区别
  11. 为什么优酷站点限制不了_什么是站点可靠性工程师,为什么要考虑这个职业道路
  12. AjaxControlToolkit工具控件之Accordion错误解决方法
  13. Oracle11g数据库快速安装
  14. c语言除法的编译,怎样代替除法指令
  15. Mybatis拦截器失效
  16. matlab蒙特卡洛法求概率,基于某MATLAB的蒙特卡洛方法对可靠度的计算.doc
  17. Excel 列累加技巧
  18. 教师管理系统_ER图_功能图_数据字典_数据库脚本
  19. java发音_多少牛逼的程序员毁在low逼的英文发音上(JAVA)
  20. Speedpdf——无需下载软件,就可以免费轻松搞定CAJ转word

热门文章

  1. 高质量解读《互联网企业安全高级指南》三部曲(技术篇)——办公网络安全
  2. Python中文数字(包含小数)转阿拉伯数字参考函数
  3. C#递归扫描文件夹中的文件
  4. java中的时间戳sssss_Golang中使用Date进行日期格式化(沿用Java风格)
  5. 视频采集到录制 - MP4生成
  6. 苹果微信王者荣耀哪个服务器人多,#大家觉得微信区和QQ区厉害的人多?来挑战下自己吧#...
  7. unity3d鼠标控制物体 移动 旋转 缩放
  8. 移动端IM系统的协议选型:UDP还是TCP?
  9. linux环境C程序设计--安装D-Bus
  10. 施乐维修服务器,富士施乐DocuCentre 450I故障诊断 维修代码.doc