2019 ICPC Asia Nanchang Regional E-Bob's Problem(图论、贪心)

这是一道2019年ICPC亚洲南昌区域赛的题目,主要考察图论和贪心算法。在限制选择白边不超过k的情况下,需要判断能否通过黑边和白边连接所有点,并求最大权值。解题策略是首先选取所有黑边,然后从能到达未连接点的白边中选取最长的。已提供代码实现和联系方式供讨论。

本文网址:https://blog.csdn.net/xiaomaolin2/article/details/103496715

传送门:https://nanti.jisuanke.com/t/42580

首先这是个图论题,但是完全可以不用图论算法做,用简单的分析加上贪心即可 。

题意:N个点、M条带权边,其中有一部分(c == 1)为白边,一部分为(c == 0)为黑边,问在限制选择白边的最大数量为k的前  提下能不能完全连接这N个点,能连接时的最大被选中边权和为多少。

解题思路:黑边全选了,看有多少点没有被连接,然后在能到未连接点的白边中选择最长的。

具体实现,先上代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <cstdio>
#include <queue>
#include <cmath>
#include <map>
#include <set>
using namespace std;
typedef long long ll;

const int maxn=5e5+10;
set<int>ss;
int T;
int n,m,k;

struct edge{
	int l;
	int r;
	int len;
	int flag;
}edge[maxn];

int cmp(struct edge a,struct edge b){
	return a.len >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值