Codeforces Round #819 (Div. 1 + Div. 2) D. Edge Split

Ros入门 (十)----激光雷达避障 简易实现 本篇文章通过订阅/scan话题获取障碍物的距离信息,达到避障目的,提供部分代码,仅供参考。 阅读详情

题意

You are given a connected, undirected and unweighted graph with n vertices and m edges. Notice the limit on the number of edges: m≤n+2.
Let’s say we color some of the edges red and the remaining edges blue. Now consider only the red edges and count the number of connected components in the graph. Let this value be c1. Similarly, consider only the blue edges and count the number of connected components in the graph. Let this value be c2.
Find an assignment of colors to the edges such that the quantity c1+c2 is minimised.
给你一个连通无重边无向图,你需要将所有的边染色(蓝色和红色),使得只看红色边的连通分量个数 c 1 c_1 c1​和只看蓝色边的连通分量个数 c 2 c_2 c2​的和最小,即最小化 c 1 + c 2 c_1+c_2 c1​+c2​,给出染色方案。
题目链接

思路

我们肯定不希望某个颜色所形成的图中有环,因为有环相当于损失了一条边的作用。
首先我们可以将其中某一颗生成树染成红色,如果剩下的边只有0条或者1条或者2条,那么都不会构成环,已经得到答案。
如果剩下的边为3条,且构成环,那么随便选一条边 e e e染成红色,此时破环了蓝色的环,但此时红色成环,我们可以从 e e e的任意一个顶点 u u u出发,将从 u u u的边(除了 e e e)染成蓝色即可。

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <cmath>

using namespace std;

typedef long long LL;
typedef pair<int, int> PII;

const int N = 200005;

struct edge
{
    int u, v;
}e[N];
int fa[N];
int ans[N];
int getf(int x)
{
    return x == fa[x] ? x : fa[x] = getf(fa[x]);
}

int main()
{
    int _; scanf("%d", &_);
    while (_ --)
    {
        int n, m;
        scanf("%d%d", &n, &m);
        for (int i = 1; i <= m; i ++ )
            ans[i] = 0, scanf("%d%d", &e[i].u, &e[i].v);
        vector<int> E;
        for (int i = 1; i <= n; i ++ )
            fa[i] = i;
        
        for (int i = 1; i <= m; i ++ )
        {
            int u = getf(e[i].u), v = getf(e[i].v);
            if (u != v)
            {
                fa[u] = v;
                ans[i] = 1;
            }
            else E.push_back(i);
        }

        if (E.size() == 3)
        {
            set<int> v;
            for (int i = 0; i < E.size(); i ++ )
                v.insert(e[E[i]].u), v.insert(e[E[i]].v);
            if (v.size() == 3)
            {
                ans[E[0]] = 1;
                int vertex = e[E[0]].u;
                for (int i = 1; i <= m; i ++ )
                {
                    if (i == E[0]) continue;
                    if (e[i].u == vertex || e[i].v == vertex)
                        ans[i] = 0;
                }
            }
        }

        for (int i = 1; i <= m; i ++ )
            printf("%d", ans[i]);
        puts("");

    }
    return 0;
}

模型实战(31)之 yolo26 实现对手部关键点数据集 的训练与关键点检测 阅读详情

相关推荐

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3183

[思维][找环]Edge Split Codeforces1726D

这样问题就可以转化为如何选出一个无环的边集A,使得剩下的边集B仍然无环,比较容易想到构造出一棵树作为A,这样剩下的边数可能为0、1、2和3,只要剩下边数不为3,那它们一定不可能构成环,可以达到最优解,而对于剩下边数为3的情况,如果三边构不成三角形,那同样能得到最优解,如果三边构成了三角形,那就选择其中一条边e加入树A,树中多了一条边肯定会出现环,所以还需要在树A的环路中删除一条非e的边,这样最终树A和剩下边集B中均无回路,可以达到最优解。

Cloth的博客 355

ROS TF坐标转换实战:从零搭建机器人坐标系(附常见问题排查)

本文提供了一份ROS TF坐标转换的实战指南,详细讲解了如何从零为机器人搭建完整的坐标系,并深入解析了TF的原理。内容涵盖静态与动态坐标变换的发布、URDF模型使用、以及Rviz和rqt_tf_tree等可视化调试工具。文章还附带了常见问题排查表,帮助开发者快速定位并解决TF树断裂、数据错位等典型问题。

weixin_29268385的博客 203

D. Edge Split(dfs/图论)

。

weixin_43918473的博客 554

WebRTC Qos优化杂记

本文是笔者对WebRTC Qos性能研究、优化的一些思考,希望对有兴趣的读者有一些启发。

sonysuqin的专栏 6677

RTL8211F千兆PHY原理图与PCB设计:从手册到量产的完整指南

在工业网关、边缘计算和FPGA/CPU以太网扩展设计中,千兆PHY芯片的稳定运行取决于外围电路的精细设计。RTL8211F(I)作为应用广泛的物理层收发器,其原理图设计涉及电源域划分、时钟与复位时序、RGMII/ MDIO接口匹配以及MDI差分网络等多个环节。正确理解数据手册的阅读顺序,掌握100Ω差分阻抗控制、等长约束和EMI布局技巧,是保证链路可靠性和信号完整性的关键。本文从芯片选型与数据手册解析切入,系统梳理从电源去耦到PCB布局布线的工程实践要点,帮助工程师规避Link不稳定、MDIO读取失败、吞吐

weixin_28721917的博客 349

D. Edge Split

D. Edge Split

zzzyyzz_的博客 326

「分治法」最近点对距离问题

一、问题描述 给定平面S上n个点,找其中的一对点,使得在n个点组成的 所有点对中,该点对间的距离最小。 假设所讨论的点是以标准笛卡儿坐标形式(x, y)给出的。因 此,在两个点Pi =(xi , yi )和Pj =(xj , yj )之间的距离是标准的欧几里德 距离: d = 根号下( x i − x j ) 2 + ( y i − y j )2 二、问题分析 直接用暴力解法很简单,用结构体把每个点的x、y坐标都存下来之后,用一个二重循环即可获得距离的最大值。但是这样做的时间复杂度也达到了O(n的平方)

Laok0413的博客 9655

谈谈Edge浏览器新出的分屏功能

在 2023 年三月份微软为浏览器的稳定版本带来了一个新功能 —— 分屏浏览,此功能允许用户在当前页面以左右视图的形式并排打开两个标签页面,作用上类似于应用的分屏可以让浏览器同时处理两个页面,分屏的好处在于操作简单易上手能大幅提升提升工作的效率或学习的效果以及节省我们的空间和时间,但缺点是可能会影响你的注意力和视力,让你分散精力,或者让你的眼睛感到疲劳...

莪是男神的博客 1万+

抓包网络调试工具 reqable抓包教程

如果CA根证书未安装成功,网络图标是黄色,点击盾牌图标可以进入CA根证书安装界面,详细步骤请阅读。在API调试中,获取流量是第一步也是最基本的操作,这里讲解下如何使用Reqable获取流量,通俗地讲就是抓包。我们可以选择一个图片请求,双击打开详情面板,能够看到该请求的详细信息。如果系统代理未设置,网络图标是黄色,点击网络图标可以自动设置系统代理。此域名的结构树,可以查看该域名下所有请求的目录结构,点击选择可以查看该请求的详情。首先,需要启用Reqable的调试功能,点击最右上角的。打开浏览器,输入地址。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2555

第五章-AllData集成DataSophon作为数据平台功能

🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。全新会员商业版 X 微信群:https://docs.qq.com/doc/DVHlkSEtvVXVCdEFo

AllDataDC的博客 1637

Codeforces div.2 D. Edge Split

codeforces 2000

m0_62167326的博客 361

MacBook Air老本重装系统

手里的这个本子型号是A1466,cpu i5,4G内存,硬盘ssd 120G。 重装系统可以在原系统上升级到更新版本,或者用U盘安装。 先确定,这个本子可以安装什么系统。 最权威的信息当然是apple的官网,地址:https://support.apple.com/zh-cn/HT211683 在“检查兼容性”中,可以依次检查每个系统兼容的硬件型号。Mojave是A1466能安装的最高版本。 确认兼容性后,下一步就是下载安装文件。还是这个页面稍下面一点可以找到。 这里告诉用户文件可以在什

bigwood99的博客 2万+

Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 D. Edge Split

解题思路:一看到连通块,而且是让形成的连通块数量最小,我们可以想到最小生成树,对于这个题我们可以先求一下最小生成树,把形成最小生成树的的边(共n-1条边)涂成一种颜色,假设涂成红色,然后我们再看剩下的边,剩下最多3条边,我们下面的任务就是判断这3条边会不会形成一个环,如果形成了一个环,那么我们就可以选择其中一条边涂成红色,然后选择这条边的一个端点,把剩下的边涂成蓝色,因为如果形成一个环之后去掉一条边不会影响连通块的数量,那么与其让它成为一个环,不如将这个环破坏掉,然后再增加几条边,使边得到最大化利用。

weixin_54562114的博客 251

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

codeforces round #819 D Edge Split(rand做法)

cf round#819 D

baidu_39314951的博客 321

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces Round #829 (Div. 1) D.The Beach(最短路/流量为1的费用流)

Codeforces Round #829 (Div. 1) D.The Beach(最短路/流量为1的费用流)

小衣同学的博客 660

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Codeforces Round #819 (Div. 1 + Div. 2) A -D

Codeforces Round #819 (Div. 1 + Div. 2) A -D

m0_57221330的博客 867

CF1726D Edge Split 题解

由于要求的是连通块数量最小,那么我们首先可以想到生成树,如果将生成树染成一个颜色,那么这个颜色的连通块就只有一个了,。为什么染成生成树一定最优呢?我们令红边的连通块数记为c1​,记蓝边连通块数记为c2​。首先,我们观察到一点,假设红边组成的子图中存在一个,我们将环上的其中一条边染成蓝色,c1​,而c2​最多会1,因此最终答案中一定不能存在任何一个环。而如果不存在这样的一个环,则如果将一条红边染成蓝色,c1​1,c2​1。

YunYuanWang的博客 369

CF 1726 D. Edge Split 图论 2000

CF 1726 D. Edge Split 图论 2000

m0_62346540的博客 491

Codeforces Round #819 (Div. 1 + Div. 2) D题解

Codeforces Round #819 (Div. 1 + Div. 2) D题解

JC_Charlie的博客 456

F. Graph Without Long Directed Paths

题目描述: You are given a connected undirected graph consisting of n vertices and m edges. There are no self-loops or multiple edges in the given graph. You have to direct its edges in such a way that the...

年轻过成了秃顶 634

Codeforces Round #819 (Div. 1 + Div. 2) C

思路:不难发现,形似:((()))这样的,只有最外层一对括号能与其它块联通,其内部的括号,无论多少对,都是只能各自为一个连通块,基于这个结论,不难发现只需要统计连续的右括号数,不妨称其为num,则ans=

black_blue_lja的博客 242

Codeforces Round #829 (Div. 2)——(ABC1)题解

Codeforces Round #829 (Div. 2),前三题题解,菜菜勿喷

ChuRi_BaiYu的博客 809

CodeForces 1076D Edge Deletion(优化最短路)

Description You are given an undirected connected weighted graph consisting of nvertices and m edges. Let's denote the length of the shortest path from vertex 1 to vertex i as di. You have to erase ...

September_的博客 739

#2020.02.05训练题解#最小生成树入门(F题)

题源CF-1108 CF-1108-MST Unification Description You are given an undirected weighted connected graph with n vertices and m edges without loops and multiple edges. The i-th edge is ei=(ui,vi,wi); the di...

薄荷糖·琳的博客 1788

Codeforces Round #829 (Div. 1) C.Wish I Knew How to Sort(概率dp/期望线性性)

Codeforces Round #829 (Div. 1) C.Wish I Knew How to Sort(概率dp/期望线性性)

小衣同学的博客 1004
上一篇: NC51111 Atlantis【线段树+扫描线】
下一篇: 洛谷U41492 树上数颜色【dsu on tree】
juruo_c
博客等级 码龄6年 520粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值