首页 > 其他分享 >CF1548A Web of Lies 题解

CF1548A Web of Lies 题解

时间:2024-12-21 22:31:10浏览次数:4  
标签:ljl minn CF1548A 朋友 题解 cin Lies ans op

Web of Lies 题解

洛谷

Codeforces

题意比较直接,就不复述了。

思路

分析题意

首先根据操作 3,删人只是暂时的,可以分析出每次删的人对于后面都没有影响。

关注到这个词:

执行以下操作直至不可再执行为止。

显然,在整个图中所有该被删除的人都逃不掉,迟早被删除。

那么看看什么样的神犇才能从操作 3 中存活下来?

  • 没朋友的人可以。(这很显然)
  • 在所有朋友中,他是最强的一个。这样的话,他的所有朋友都会比他早归西,他也就没了朋友,可以当作第一种情况看待。

这么说来,这道题还挺富含哲理的……

当你最孤独,没朋友就能活下来。

当你在你朋友中是最强的,他们归西了,你还苟着。

当你的某个朋友比你强,你就得卒。

可以考虑用一个数组 e 来记录。\(e_i\) 表示第 \(i\) 个人有几个比他强的朋友

现在看看操作

加边

当你交了一个朋友,会怎么样呢?

分下情况:

若他比你弱,啥事也没发生。

若他比你强,交了这个朋友会把你害死。必死无疑。\(e_i+1\)。答案 +1。

删边

若他比你弱,也是什么事都没发生。

比你强:

如果你只有这一个比你强的朋友,即 \(e_i=1\),那么恭喜你,你跟他绝交,你活了下来。

如果你不止他一个,那你目前还得死。不过 \(e_i\) 可以减一。这样以后再绝交几个就可以活了。

询问

直接输出答案即可。

Code

//wrote by Atserckcn
#include<bits/stdc++.h>
using namespace std;
#define ljl long long
const ljl N=2e5+5,M=2e5+5;
ljl n,m,q,u,v,ans/*ans 即为答案*/,op,e[N];
struct EDGE{
	void solve1(ljl from,ljl to)//加边
	{
		ljl minn=(ljl)min(from,to);//选取主角:弱的那个
		if(!e[minn])//交了个比你强的朋友,很遗憾,你目前得死
			--ans;
		e[minn]++;
		return;
	}
	void solve2(ljl from,ljl to)//删边
	{
		ljl minn=(ljl)min(from,to);//找主角
		if(e[minn]==1)//你只有一个比你强的朋友,恭喜你,你能活着
			++ans;
		--e[minn];
		return;
	}
}edge;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n>>m;
	ans=n;
	for(ljl i=1;i<=m;++i)
	{
		cin>>u>>v;
		edge.solve1(u,v);
//		cout<<"----------"<<ans<<'\n';
	}
	cin>>q;
	while(q--)
	{
		cin>>op;
		if(op==1)
		{
			cin>>u>>v;
			edge.solve1(u,v);
			continue;
		}
		if(op==2)
		{
			cin>>u>>v;
			edge.solve2(u,v);
			continue;
		}
		cout<<ans<<'\n';
	}
	return 0;
}

AC 记录

标签:ljl,minn,CF1548A,朋友,题解,cin,Lies,ans,op
From: https://www.cnblogs.com/Atserckcn/p/18621488

相关文章

  • P8060 [POI2003] Sums 题解
    题目传送门前置知识同余最短路解法考虑同余最短路,设\(dis_{i}\)表示\(\bmoda_{1}=i\)时能被拼成的最小值,接着只需要判断是否有\(dis_{b\bmoda_{1}}\leb\)即可。直接建边的空间复杂度为\(O(nV)\),无法接受。但我们发现边不一定非要建出来,可以在Dijsktra松弛时枚......
  • 题解 - 冰壶比赛
    题目描述在3月29日举行的女子冰壶世锦赛决赛中,王冰玉、柳荫、岳清爽和周妍组成的中国女子冰壶队以8比6击败了冬奥会和世锦赛双冠王瑞典队,夺得了中国冰壶历史上第一枚世锦赛金牌,创造了历史。美丽、实力兼具的中国冰壶姑娘们也赢得了超高的赞誉。在冰壶比赛中,给出一个目标点......
  • 平民玩家体验《诛仙世界》进副本闪退频现?游戏问题解决当选云电脑
    嘿嘿,千盼万盼《诛仙世界》终于开服了!还有人没收到消息吗?这款游戏的虚幻5引擎非常的劲爆,对于经常玩一些3A大作的玩家都知道,这无疑是目前最好的游戏引擎,所打造出来的诛仙世界的画质也是相当顶级的。在开服的第一天,一些服务器的人数大幅激增;其中《风华绝代》的排队人数竟已超过12......
  • CF2049D 题解
    CF2049D题解题意给定一个\(n\timesm\)的数字矩阵和常数\(K\),初始位于\((1,1)\)点,只能通过向下或者向右走来到达\((n,m)\)点。存在某种操作,可以选择任意一行,将其所有列元素逆时针旋转\(1\)个单位,这个操作可以对任意行进行任意次(下面称这个操作为“旋转”)。设最后......
  • CF2049C 题解
    CF2049C题解关于MEX的构造题。题意有一个\(n\)元环,每个元素都和它的相邻元素是“朋友”。此外,额外给定一组\(x,y\),\(x\)和\(y\)彼此也是“朋友”。求一种给\(n\)个元素填数的方案,使得对于任意一个\(i\in[1,n]\),填在\(i\)这个位置的数\(a_i\),是它所有“朋友”的......
  • redis-cli (error) NOAUTH Authentication required问题解决
    1.查找redis-cli所在目录whichredis-cli2.切换到redis-cli目录3.切换到usr/bin目录执行以下命令redis-cli-hip-pport4.验证redis登录密码auth'password'5.获取redis数据......
  • Luogu P8112 [Cnoi2021] 符文破译 题解 [ 蓝 ] [ KMP ] [ 线性 dp ] [ 决策单调性 dp
    符文破译:KMP+dp的好题。暴力dp不难打出一个暴力dp:设计\(dp_i\)表示当前前\(i\)位全部完成了匹配,所需的最小分割数。转移也是简单的,我们在KMP的过程中进行dp转移,每次选取next不断跳向再前面的next,然后进行转移即可。很显然一个字符集大小为\(1\)的串就能轻松......
  • Hexo Next主题本地搜索功能不可用问题解决
    个人博客地址:HexoNext主题本地搜索功能不可用问题解决|一张假钞的真实世界。按照Next主题官网配置步骤(LocalSearch)配置后,站点的“搜索”菜单点击无响应。查看Next主题源代码({Next主题根目录}/hexo-theme-next/layout/_partials/search/index.njk),发现站点优先使用Algolia......
  • GESP202412 八级【树上移动】题解(AC)
    》》》点我查看「视频」详解》》》[GESP202412八级]树上移动题目描述小杨有一棵包含nnn个节点的树,其中节点的编号从1......
  • CF1477D Nezzar and Hidden Permutations 题解
    Description给定一张\(n\)个点\(m\)条边的简单无向图,构造两个排列\(p,q\),使得:对任意\((u,v)\inE\),\((p_u-p_v)(q_u-q_v)>0\).在此基础上,最大化\(\left|\left\{i\|\p_i\neqq_i\right\}\right|\).\(1\leqn,m\leq5\times10^5\)。Solution首先显然如果存在一个......