目录

题意

样例输入

样例输出

思路

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相关推荐

  1. CF1548A Web of Lies

    CF1548A Web of Lies 题意: 题解: 第一感觉是先建边然后跑dfs,但是看数据范围肯定不对,现在我们开始考虑其中的性质 对于第三个操作,我们是要将所有>=2的连通块进行判断的, ...

  2. Web of Lies(CF 1548A)

    这是今天在打个人赛时碰见的一道题,是一道半图论半思维的题. Web of Lies 题目大意不难理解,在这里只需要注意一些细节.在加边时,只有当cnt[min]的值为1时答案才应该减1,而不是当cnt ...

  3. Codeforces Round #736 (Div. 2)_C. Web of Lies

    C. Web of Lies 题目传送门: 题目传送门 题目截图: 题目大意: 给你一张图,连边代表两个点是朋友.一个点如果它所有的朋友都比它大,那他就出局了.接下来做q个操作: 1 u v代表uv之 ...

  4. C. Web of Lies cf#736Div.2

    C. Web of Lies 链接: link. 题目: 题意: 在一个关系图中,如果某个点有相连的点且相连的点数值大于它,那么他就会面临出局,操作1为加边,操作2为删边,操作三则为输出此时未出局人数 ...

  5. 跟着大佬上大分-Web of Lies

    C.谎言之网 目录 题干 代码 补充 题干 时间限制每测试2秒 内存限制每test256兆字节 inputstandard输入 outputstandard输出 当你玩权力的游戏时,你要么赢,要么死. ...

  6. CodeForces - 1549C - Web of Lies( 思维 )

    题目链接:点击进入 题目 题意 n个人m对朋友关系( 双向 ),q次操作: 1 u v u与v成为朋友 2 u v u与v朋友关系破灭 3 计算以下过程的答案: 过程:所有易受伤害的贵族同时被杀害,他 ...

  7. Web of Lies(图论/入度)

    题目 题意:给定n个点,第i个点的点权为i.初始时有m个边.现在有q个操作. 1 u v,表示把节点u和v连接,保证之前他们没有连接. 2 u v,表示把节点u和v拆开连接,保证它们之前已连接. 3 ...

  8. Codeforces Round #736 (Div. 2) C. Web of Lies

    传送门 题意: n个人,m个朋友关系,在一个关系中,编号较小的那个人权力较小.q次操作:让两个人成为朋友:让两个人断绝关系:杀死所有有朋友的并且他的所有朋友的权力都比他大的人,重复该操作直到没有可以杀 ...

  9. C - Web of Lies

    题意 如果一个人的所有链链接的人等级都比自己高,那么他就会被消灭掉.死的人还能被link. 解析 根本不需要建图,傻乎乎的建图建了好一会儿.而且直接模拟的话明显会超时,就要去观察一下性质:如果一个被高 ...

最新文章

  1. java while等待 yeild_Java中run(), start(), join(), wait(), yield(), sleep()的使用
  2. 联合国总部宣布75周年活动用腾讯会议和企业微信举行
  3. JVM学习-垃圾回收调优
  4. Spring @ComponentScan
  5. Chrome无法使用Unity Web Player的解决方案
  6. ajax struts2 乱码,struts,ajax出现乱码的解决方法
  7. 01、STM8 单片机芯片介绍
  8. 微信开发者工具公众号网页调试跨域问题的解决
  9. 行列式与矩阵相关的内容学习
  10. 瀚高数据库php连接,HighGo瀚高数据库4.3版本安装说明
  11. Saver类--变量的保存和恢复
  12. JAVA学习笔记——BLOB类型和数据批量操作
  13. Leco题目:两数相加
  14. 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
  15. C Runtime Library 与 STL
  16. 六年级上册计算机期末试题及答案,小学六年级上册数学期末检测试题
  17. MB6S-ASEMI高档品质LED驱动器电源适配整流桥
  18. xcode自动生成project-swift.h出错
  19. 一个例子彻底弄懂python中的break和continue语句(Python经典编程案例)
  20. 手机通讯录java首字母排序,Android联系人按拼音排序以及按汉字首字母或全拼搜索...

热门文章

  1. 广播通信设计——WinSock编程(QT界面)
  2. 传播最广的一篇SVM算法博文
  3. 2019年在上海的最后一天,2020年新开始的一年
  4. nvme预知性热插拔操作方法
  5. 思科开始了新一轮裁员,但拒绝透露影响规模
  6. Mobaxterm使用笔记
  7. 最全免费PPT模板PPT素材站点收录整理,你不知道的免费PPT模板网站
  8. 90后不是让你们骂的!
  9. 服装机械加工如何使用ERP管理系统?
  10. VTK 学习----VTK基础-VTK功能模块