CF - 420B - Online Meeting(思维)
题意:n 个人參加线上会议。某经理记录了中间一段时间的 m 条上下线记录(1 ≤ n, m ≤ 105)。+ 表示上线,- 表示下线。
leader是指仅仅要有人在线,他都在线的人。求全部可能的leader。
题目链接:http://codeforces.com/problemset/problem/420/B
——>>这种一种人,他们在记录中的第一条记录是下线的,定义为xx。。
三个断言:
1)假设xx存在。那么出现的人中,leader仅仅可能是最后出现的那个xx。。
2)假设xx不存在,那么出现的人中,leader仅仅可能是第一个登录的人。。
3)没出现过的人都能够是leader。
。
#include <cstdio>
#include <set> using std::set; const int MAXN = 100000 + 10; int n, m;
char op[MAXN];
int p[MAXN];
int sum, leader;
int firstPlus = -1, lastInfinite = -1;
bool vis[MAXN]; void Init()
{
sum = n;
for (int i = 1; i <= n; ++i)
{
vis[i] = true;
}
} void Read()
{
for (int i = 1; i <= m; ++i)
{
getchar();
scanf("%c%d", op + i, p + i);
if (op[i] == '-' && vis[p[i]] == true)
{
lastInfinite = p[i];
}
if (firstPlus == -1 && op[i] == '+')
{
firstPlus = p[i];
}
if (vis[p[i]])
{
vis[p[i]] = false;
--sum;
}
}
} void Solve()
{
set<int> se; leader = lastInfinite == -1 ? firstPlus : lastInfinite;
if (lastInfinite != -1)
{
se.insert(leader);
}
for (int i = 1; i <= m; ++i)
{
if (op[i] == '+')
{
se.insert(p[i]);
if (se.find(leader) == se.end())
{
leader = -1;
break;
}
}
else
{
if (!se.empty())
{
se.erase(p[i]);
}
if (!se.empty() && se.find(leader) == se.end())
{
leader = -1;
break;
}
}
}
if (leader != -1)
{
vis[leader] = true;
++sum;
}
} void Output()
{
printf("%d\n", sum);
if (sum == 0) return; bool first = true;
for (int i = 1; i <= n; ++i)
{
if (vis[i])
{
if (first)
{
first = !first;
}
else
{
printf(" ");
}
printf("%d", i);
}
}
puts("");
} int main()
{
while (scanf("%d%d", &n, &m) == 2)
{
Init();
Read();
Solve();
Output();
} return 0;
}
CF - 420B - Online Meeting(思维)的更多相关文章
- CF 420B Online Meeting 模拟题
只是贴代码,这种模拟题一定要好好纪念下 TAT #include <cstdio> #include <cstring> #include <algorithm> ...
- CF D. Fair(思维+DFS)
http://codeforces.com/contest/987/problem/D 题目大概: 给出一个n个城镇m条边的图,给出每个城镇拥有的特产(可能多个城镇有相同特产).有k种不同特产. 要求 ...
- 2019牛客多校第四场A meeting 思维
meeting 题意 一个树上有若干点上有人,找出一个集合点,使得所有人都到达这个点的时间最短(无碰撞) 思路 就是找树的直径,找直径的时候记得要找有人的点 #include<bits/stdc ...
- codeforces 420B Online Meeting
一道实现很蛋疼的题.必须静下理清思路,整理出各种情况.不然就会痛苦地陷入一大堆if..else里不能自拔. #pragma comment(linker, "/STACK:102400000 ...
- CF 988C Equal Sums 思维 第九题 map
Equal Sums time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- cf 之lis+贪心+思维+并查集
https://codeforces.com/contest/1257/problem/E 题意:有三个集合集合里面的数字可以随意变换位置,不同集合的数字,如从第一个A集合取一个数字到B集合那操作数+ ...
- 【31.42%】【CF 714A】Meeting of Old Friends
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- Coder-Strike 2014 - Finals (online edition, Div. 1)
CF 420A A. Start Up 题目链接: http://codeforces.com/problemset/problem/420/A 题目意思: 给一个字符串A,通过镜面反射后得到A', ...
- Online Meeting CodeForces - 420B (思维)
大意: 给定某一段连续的上线下线记录, 老板上线或下线时房间无人, 并且每次会议都在场, 求哪些人可能是老板. 结论1: 从未出现过的人一定可以是老板. 结论2: 出现过的人中老板最多只有1个. 结论 ...
随机推荐
- Spring 简单而强大的事务管理功能
开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...
- BZOJ 3509 [CodeChef] COUNTARI ——分块 FFT
分块大法好. 块内暴力,块外FFT. 弃疗了,抄SX队长$silvernebula$的代码 #include <map> #include <cmath> #include & ...
- bzoj2338数矩形(rectangle)
数矩形(rectangle) 计算几何 把所有点两两连线,把这些线按长度排序,再按中点排序 能组成矩形的线一定是连续的 最坏就是所有点围成一个圆,交于圆心 复杂度O(可以过) 要用叉积,不然会被卡精 ...
- 【Begin】
迫于无奈,我想提高写博速度.我要尽量压缩每道题的题解思路.最终我选择背叛大米兔,但是我支持它.因为它的每一篇博客耗时巨大,精贵的竞赛集训时间经不起它花:可同时精致的博客会带给来浏览的Oier们更多东西 ...
- zookeeper与Kafka集群搭建及python代码测试
Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...
- docker (centOS 7) 使用笔记3 - docker swarm mode
1. 什么是docker swarm mode docker engine自带的 容器管理 工具.功能比较早的 docker swarm 更多,且集成在docker engine里. (docker ...
- 关于在生命周期当中进行setState操作的问题
当需要监听组件的属性改变的时候有两个生命周期componentWillReceiveProps和componentWillUpdate 当使用componentWillUpdate的时候可以获取到将要 ...
- cf 487E Tourist
题目大意 给定\(n\)个点\(m\)条边的无向连通图,无重边 每个点有点权 两个操作: 1.单点点权修改 2.询问从x到y的简单路径中,路径经过点的最小值的最小值时多少 (简单路径指经过每一个点至多 ...
- Bzoj1879 [Sdoi2009]Bill的挑战
Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 724 Solved: 363 Description Input 本题包含多组数据. 第一行:一个整数T ...
- ToolTip特效 JavaScript 盗取厦门人才网的特效
原文发布时间为:2009-05-17 -- 来源于本人的百度文章 [由搬家工具导入] 源代码:http://www.xmaspx.com/Services/FileAttachment.ashx?At ...