2020牛客暑期多校训练营Interesting Computer Game(图论,带权并查集)

本文介绍了计算机游戏中的一个问题,涉及图论和带权并查集的知识。通过分析错误的贪心策略和正确的建图思路,解释了如何利用图的性质来解决问题。文章提供了正确解决方案的思路,并给出了代码实现。
摘要由CSDN通过智能技术生成

Interesting Computer Game

题目描述

在这里插入图片描述

输入描述:

在这里插入图片描述

输出描述:

在这里插入图片描述

示例1

输入

2
6
1 2
2 3
3 4
1 4
1 3
2 4
5
1 2
1 2
1 3
2 3
5 6

输出

Case #1: 4
Case #2: 4

题目大意

给定 n n n组数,每组数有 a i , b i a_i,b_i ai,bi。你在每组数中都可以选择一个数,且只能选一个,这个数要求之前没有选到过。求你在这 n n n组数中选的数最多有多少。

分析

我们理解题意后,要知道对于每一个数,选不选有两个限制,如果这个数同一组的另一个数选了,那么这个数不能选。如果所有组中与这个数相等的选了,那么这个数也不能选。

错的思路

首先是小胖在肝这题,他采用的思路是贪心。这一听就是不对的。
不如先听听他的思路。他首先枚举每一组,然后如果这一组中有一个数被选了,那么就选另一个数。如果两个数都没有被选过,那么选出现次数少的那个。
这乍一听是没有问题的,但是很容易就会被hack掉。比如:
6
1 3
2 4
5 6
1 4
2 5
3 6
这组,就能随便怼。
每个数出现次数一样,那么13的时候选1。然后24选2,56选5。
然后14选4,25没得选,36选6。选到了5个数。但是显然,我分别选126453就可以选6个。
所以这题是不能贪心的。同样的动规不能用,因为状态太多了,更不能爆搜,肯定是 T L E TLE TLE

对的思路

x i n j u n xinjun x</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值