#736Div2---C.Web of Lies
目录
题意
样例输入
样例输出
思路
AC代码
https://codeforces.com/contest/1549/problem/C
题意:
有个贵族,编号为1~,编号i的贵族具有的能量值。存在个朋友关系,朋友关系是相互的。(如果贵族和贵族存在朋友关系的话,a是b的朋友,b也是a的朋友。)
一个贵族被定义为脆弱的,如果满足两个条件:
1.这个贵族至少有一个朋友
2.这个贵族的所有朋友的能量值都比他高
你需要处理以下三种类型的查询:
1.Add a friendship between nobles u and v.(添加朋友关系)
2.Remove a friendship between nobles u and v.(移除朋友关系)
3.计算剩余贵族的数量(规则:所有脆弱的贵族被杀死,同时他们的友谊也随之结束。那么,新贵族就有可能变得脆弱。这个过程会不断重复,直到没有贵族会受到伤害。)
样例输入
4 3//n个贵族,m个朋友关系
2 1//2和1是朋友
1 3
3 4
4//四次查询
3//过程3,计算剩余贵族数量
1 2 3//过程1,添加朋友关系
2 3 1
3
样例输出
//对每个过程3输出答案
2
1
思路
思维+简单模拟
1.观察:如果 a , b有朋友关系,且能量值 a < b ,那么 a就会被杀。只要存在一个朋友关系,那么这个关系中编号小的就会被杀。所以可以记录每个关系中小编号的出度,出度为 0 的就是 3 过程最后留下来的 ( 因为没有以它为小编号的关系,所以它留下来了 )。
if(x>y) swap(x,y);deg[x]++;
2.用一个num维护贵族剩余人数。
AC代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<limits.h>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=1e6+10;
int deg[N];
int vis[N];
int main()
{int n,m,q;cin>>n>>m;int num=n;//nu维护剩余人数memset(vis,0,sizeof(vis));while(m--){int x,y;cin>>x>>y;if(x>y)swap(x,y);deg[x]++;//给小编号出度加1if(!vis[x]){vis[x]=1;num--;}}cin>>q;int op,x,y;while(q--){cin>>op;if(op==1){cin>>x>>y;if(x>y)swap(x,y);deg[x]++;if(!vis[x]){vis[x]=1;num--;}}else if(op==2){cin>>x>>y;if(x>y)swap(x,y);deg[x]--;if(deg[x]==0){vis[x]=0;num++;}}else{cout<<num<<endl;}}
}
#736Div2---C.Web of Lies相关推荐
- CF1548A Web of Lies
CF1548A Web of Lies 题意: 题解: 第一感觉是先建边然后跑dfs,但是看数据范围肯定不对,现在我们开始考虑其中的性质 对于第三个操作,我们是要将所有>=2的连通块进行判断的, ...
- Web of Lies(CF 1548A)
这是今天在打个人赛时碰见的一道题,是一道半图论半思维的题. Web of Lies 题目大意不难理解,在这里只需要注意一些细节.在加边时,只有当cnt[min]的值为1时答案才应该减1,而不是当cnt ...
- Codeforces Round #736 (Div. 2)_C. Web of Lies
C. Web of Lies 题目传送门: 题目传送门 题目截图: 题目大意: 给你一张图,连边代表两个点是朋友.一个点如果它所有的朋友都比它大,那他就出局了.接下来做q个操作: 1 u v代表uv之 ...
- C. Web of Lies cf#736Div.2
C. Web of Lies 链接: link. 题目: 题意: 在一个关系图中,如果某个点有相连的点且相连的点数值大于它,那么他就会面临出局,操作1为加边,操作2为删边,操作三则为输出此时未出局人数 ...
- 跟着大佬上大分-Web of Lies
C.谎言之网 目录 题干 代码 补充 题干 时间限制每测试2秒 内存限制每test256兆字节 inputstandard输入 outputstandard输出 当你玩权力的游戏时,你要么赢,要么死. ...
- CodeForces - 1549C - Web of Lies( 思维 )
题目链接:点击进入 题目 题意 n个人m对朋友关系( 双向 ),q次操作: 1 u v u与v成为朋友 2 u v u与v朋友关系破灭 3 计算以下过程的答案: 过程:所有易受伤害的贵族同时被杀害,他 ...
- Web of Lies(图论/入度)
题目 题意:给定n个点,第i个点的点权为i.初始时有m个边.现在有q个操作. 1 u v,表示把节点u和v连接,保证之前他们没有连接. 2 u v,表示把节点u和v拆开连接,保证它们之前已连接. 3 ...
- Codeforces Round #736 (Div. 2) C. Web of Lies
传送门 题意: n个人,m个朋友关系,在一个关系中,编号较小的那个人权力较小.q次操作:让两个人成为朋友:让两个人断绝关系:杀死所有有朋友的并且他的所有朋友的权力都比他大的人,重复该操作直到没有可以杀 ...
- C - Web of Lies
题意 如果一个人的所有链链接的人等级都比自己高,那么他就会被消灭掉.死的人还能被link. 解析 根本不需要建图,傻乎乎的建图建了好一会儿.而且直接模拟的话明显会超时,就要去观察一下性质:如果一个被高 ...
最新文章
- java while等待 yeild_Java中run(), start(), join(), wait(), yield(), sleep()的使用
- 联合国总部宣布75周年活动用腾讯会议和企业微信举行
- JVM学习-垃圾回收调优
- Spring @ComponentScan
- Chrome无法使用Unity Web Player的解决方案
- ajax struts2 乱码,struts,ajax出现乱码的解决方法
- 01、STM8 单片机芯片介绍
- 微信开发者工具公众号网页调试跨域问题的解决
- 行列式与矩阵相关的内容学习
- 瀚高数据库php连接,HighGo瀚高数据库4.3版本安装说明
- Saver类--变量的保存和恢复
- JAVA学习笔记——BLOB类型和数据批量操作
- Leco题目:两数相加
- 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
- C Runtime Library 与 STL
- 六年级上册计算机期末试题及答案,小学六年级上册数学期末检测试题
- MB6S-ASEMI高档品质LED驱动器电源适配整流桥
- xcode自动生成project-swift.h出错
- 一个例子彻底弄懂python中的break和continue语句(Python经典编程案例)
- 手机通讯录java首字母排序,Android联系人按拼音排序以及按汉字首字母或全拼搜索...