#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. 解析 根本不需要建图,傻乎乎的建图建了好一会儿.而且直接模拟的话明显会超时,就要去观察一下性质:如果一个被高 ...
最新文章
- 【bzoj3924】[Zjoi2015]幻想乡战略游戏 动态点分治
- 《Flex 3程序设计》——Adobe技术专家力作
- 网吧电源和网络布线经验谈(1)
- 【leetcode】3Sum
- Spring Bean的属性注入
- 校级选修课《软件开发实践》教学大纲(200807修订)
- python笔记之序列(tuple的基本使用和常用操作)
- python里的apply,applymap和map的区别
- 机器学习岗位太少_太多的东西要学习,很少的时间
- Python base64编码解码
- C++编译器与链接器工作原理
- 命运歌姬服务器停服维护中,命运歌姬3月4日更新什么?命运歌姬3月4日更新维护公告[多图]...
- 非递归的方法写快排java_快排的最差情况以及快排平均复杂度的计算
- 微软紧急修复 Windows codecs 库中的两个 RCE 漏洞
- sock 文件方式控制宿主机_基于嵌入式Linux系统实现YAFFS2文件系统存储方案的设计...
- SLAM学习笔记-------------(二)初识SLAM
- 利用Excel出库明细表批量生成送货单
- MPC的终结——二次规划求解约束极值问题
- pcs7服务器没有报警信息,PCS7操作员站体系结构
- SQL入门之第八讲——UPDATE更新语句