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个. 结论 ...
随机推荐
- C# 反射修改私有静态成员变量
//动态链接库中PvsApiIfCtrl.Cls.Cls_Public类有一变量 private static string key="abcd";//下面通过反射的技术修改和获取 ...
- iBATIS 框架主要的类层次结构
iBATIS 框架主要的类层次结构 总体来说 iBATIS 的系统结构还是比较简单的,它主要完成两件事情: 根据 JDBC 规范建立与数据库的连接: 通过反射打通 Java 对象与数据库参数交互之间相 ...
- 禁用jQuery chosen的选择下拉菜单
想法是启用被勾掉之后,左侧下拉框禁用.这是chosen()的 disabled之后需要更新一下.就这样,还有别的方法的话请分享,O(∩_∩)O哈哈~
- Android EditText默认不弹出输入法,以及获取光标,修改输入法Enter键的方法
一.Android EditText默认不弹出输入法的办法:1. 在AndroidManifest.xml中将需要默认隐藏键盘的Activity中添加属性即可(常用此方法) android:windo ...
- HDU 1392 Surround the Trees(凸包入门)
Surround the Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 省选算法学习-数据结构-splay
于是乎,在丧心病狂的noip2017结束之后,我们很快就要迎来更加丧心病狂的省选了-_-|| 所以从写完上一篇博客开始到现在我一直深陷数据结构和网络流的漩涡不能自拔 今天终于想起来写博客(只是懒吧.. ...
- 【转】手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)
前言 做这个 vueAdmin-template 的主要原因是: vue-element-admin 这个项目的初衷是一个vue的管理后台集成方案,把平时用到的一些组件或者经验分享给大家,同时它也在不 ...
- hdoj 4293 Groups
Groups Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- BZOJ 4766: 文艺计算姬
4766: 文艺计算姬 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 456 Solved: 239[Submit][Status][Discuss] ...
- js6:history和navigator对象的学习
原文发布时间为:2008-11-08 -- 来源于本人的百度文章 [由搬家工具导入] <html> <head> <title>js</title> & ...