C. Valera and Elections (DFS)

短距激光雷达专业讲解:定义、架构、技术路线与选型逻辑 短距激光雷达,通常指有效探测距离不大于 50 米的激光雷达产品。它主要服务于服务机器人、扫地机器人、AGV/AMR、无人机、智能手机、AR/VR、工业安全等中近距感知场景。它与车载中长距激光雷达的最大区别,不是“探测距离短一点”,而是整套工程目标不同。短距激光雷达的核心诉求是:小体积、低成本、高帧率、强抗光、嵌入式集成。单价从百元级扫地机模组,到数千元级工业 3D 雷达不等。一句话概括:中长距车载激光雷达追求远距离、高可靠、车规寿命; 阅读详情
题目链接: C. Valera and Elections
题目大意:
 给出n个点,n-1对关系,表示两点之间是否连通,1为连通,2为断。选中一个点,可以修复1到该点的路径上所有坏的边。求最少要选出哪些点。
思路:
  这题还是用dfs,不过做题目的时候还是不会的,看了题解才补了。如果一个点到其父亲的点是坏的,并且他的子节点中所有路径都是好的,那么该点就必须选中。(选出所有路径中最后一条坏的边,只要选中这个点,那么上面所有点都能被修复) 最主要是不知道如何建树,看了题解才知道用vector来建树。 解题过程,存下每一条边,然后dfs建树,用ans数组存答案,(初始化为0,经过标记为2,被选中标记为1)对没条边进行判断,如果是坏的,将这点的ans标记成1,往上搜素,将经过的ans都标记成2,直到根节点1。对每条坏的边都搜素.最后得到答案。

部分细节注释在代码

代码

#include<iostream>
#include<vector>
#include<string>
#include<cstring>
using namespace std;
const int maxn = 100100;
typedef vector<int>V;
V node[maxn]; //存子节点
int vis[maxn], par[maxn], ans[maxn]; //par存父节点 vis用来建树的时候标记是否走过 ,ans存答案。

//存边
struct road {
    int f, t, tp;
}q[maxn];

//建树
void dfs(int rt) {
    vis[rt] = 1;
    for (int i = 0; i<node[rt].size(); ++i) {
        if (!vis[node[rt][i]]) {
            par[node[rt][i]] = rt;
            dfs(node[rt][i]);
        }
    }
}
int main() {
    memset(vis, 0, sizeof(vis));
    memset(ans, 0, sizeof(ans));
    int n, i, j, a, b, c;
    cin >> n;
    for (i = 0; i<n - 1; ++i) {
        cin >> q[i].f >> q[i].t >> q[i].tp;
        node[q[i].f].push_back(q[i].t);
        node[q[i].t].push_back(q[i].f);
    }
    dfs(1);
    for (i = 0; i<n - 1; ++i) {
        //该边坏了
        if (q[i].tp == 2) {
            int pt;

            //判断哪个点是子节点
            if (par[q[i].f] == q[i].t)pt = q[i].f;
            else pt = q[i].t;

            if (ans[pt] == 0) {
                ans[pt] = 1;
                pt = par[pt];
            //如果该点不是这条路径上损坏的最后一个点 当最后一个点循环搜素的时候前面的点就会被覆盖
                while (ans[pt] <= 1) {
                    ans[pt] = 2;
                    if (pt == 1)break;
                    pt = par[pt];
                }
            }
        }

    }
    int res = 0;
    for (i = 1; i <= n; ++i)
        if (ans[i] == 1)res++;
    cout << res << endl;
    int flag = 1;
    for (i = 1; i <= n; ++i)
        if (ans[i] == 1)
            if (flag) {
                cout << i;
                flag = 0;
            }
            else cout << " " << i;
            return 0;
}
华为OD新系统机试真题 - API请求日志去重分析 华为OD新系统机试真题【API请求日志去重分析】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【API请求日志去重分析】 阅读详情

相关推荐

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3410

Codeforces 369C Valera and Elections【思维+Dfs】

C. Valera and Elections time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The city Valera lives in is going to hold elec

mengxiang000000 688

从Excel到‘一张图’办案:手把手教你用AbutionGraph构建公安经侦知识图谱(含数据建模避坑指南)

本文详细介绍了如何利用AbutionGraph时序图数仓技术,将公安经侦领域的Excel、银行流水等碎片化数据转化为可交互的知识图谱。通过数据清洗、实体关系模型设计、时序数据处理等步骤,实现高效智能分析,提升办案效率。特别包含数据建模避坑指南和实战案例,助力公安金融案件侦破。

weixin_33702545的博客 341

codeforces Valera and Elections (这思维题是做不明白了)

1

xianqiuyigedao的博客 222

大数据之VIP(Virtual IP,虚拟IP)负载均衡

VIP(Virtual IP,虚拟IP)负载均衡是一种在计算机网络中常用的技术,用于将网络请求流量均匀地分散到多个服务器上,以提高系统的可扩展性、可靠性和性能。

赵玉的专栏 4122

SqlSugar避坑指南:C#操作MySQL时你可能会忽略的5个细节

本文分享了使用C#和SqlSugar框架操作MySQL数据库时的实战避坑指南。针对连接配置、实体映射、查询性能、事务处理等关键环节,深入剖析了5个容易被忽略但至关重要的细节,帮助开发者提升项目稳定性和执行效率,避免常见陷阱。

delta的博客 276

codeforces 369C Valera and Elections DFS

The city Valera lives in is going to hold elections to the city Parliament.The city has n districts and n - 1 bidirectional roads. We know that from any district there is a path along the roads to a

ccsu_cherish 831

用AnythingLLM搭建私人RAG知识库:从入门到实战调优指南

大型语言模型虽然知识渊博,但无法触达私有文档中的具体内容,这正是检索增强生成(RAG)技术的核心价值所在。RAG通过先将文档切块并向量化,再在提问时检索最相关的片段拼接给模型,让AI基于指定资料精准回答,无需昂贵的模型微调。这种架构不仅让知识更新即时生效,还大幅降低了私有化部署的门槛。在实际工程中,RAG的落地需要合理选择嵌入模型、设计分块策略并调优检索参数,才能避免答非所问。对于个人或小团队,使用开源工具搭建本地知识库是最省心的路径,其中AnythingLLM以其开箱即用的特性,成为连接向量检索与模型推理

weixin_29062671的博客 227

Codeforces 369 C Valera and Elections

Valera and Elections 题意:现在有n个候选人, 有n-1条路, 如果选择了这个候选人, 这个候选人就会将从自己这个城市到1号城市上所有坏的路都修复一下,现在求最小的候选人数目, 如果答案有多种情况输出任何一种都可以。 输入:x y k 表示x与y之间有一条双向通道, k==1 表示这路是好的, k == 2表示这条路是坏的。 题解: 从1开始dfs搜索, 往外走...

dengpangbu3703的博客 217

【ODX介绍】-5-用于Flash刷写的ODX-F文件概述

用于Flash刷写的ODX-F文件概述

「汽车电子助手」的博客 2531

27、振动信号实时并行处理与风力发电机模型鲁棒控制设计

本文探讨了振动信号实时并行处理与风力发电机模型鲁棒控制设计两大核心技术。在振动信号处理方面,提出基于FPGA、RT和PC三级架构的并行采集与处理系统,实现高效、实时的振动分析,适用于电机状态监测与预测性维护。在风力发电控制方面,研究风力农场布局优化(WFLO)问题,比较九种多目标元启发式算法性能,并提出基于扰动观察法的最大功率点跟踪(MPPT)控制策略,提升发电效率与系统鲁棒性。研究成果为工业设备智能监控与可再生能源优化提供了有效技术路径。

sunny的博客 72

【Codeforces 369C】 Valera and Elections

【链接】 我是链接,点我呀:) 【题意】 给你一棵树 让你选择若干个修理点. 这些修理点被选中之后,节点i到1号节点之间的所有"坏路"都会被修好 问最少需要选择多少个点才能将所有的坏路修好 【题解】 以1为根节点建立一棵树 对于每一棵子树,如果里面有"坏路",必然要选择一个修理点,怎么选择呢? 肯定是"最底下"的那条坏路的下面那个点. 因此记录下每个子树下面的修理点的个数...

175

剪映专业版关键帧完全教程:从原理到实战的动画必修课

关键帧是视频动画的核心原理。视频由连续静止画面(帧)构成,关键帧记录素材属性变化的起始与结束状态,中间过渡帧由软件自动计算生成。剪映专业版中,视频、音频、文本、贴纸等素材均支持关键帧动画,可调节位置、缩放、旋转、不透明度、音量等参数。操作为:在起始位置点击参数旁菱形按钮添加关键帧,移动播放头后调整参数,系统自动生成第二个关键帧。多属性可独立控制并叠加,实现放大同时淡出等复合效果。通过设定变化起点与终点,关键帧能让静止元素产生移动、缩放、淡入淡出等丰富动态,是视频剪辑从基础拼接进阶创意表达的核心技能。掌握关键

深耕计算机专业知识与技术。 2087

codeforce 369C Valera and Elections (DFS)

题目:http://codeforces.com/problemset/problem/369/C 题意:n个点,n-1条边的树,以1为根,边的权值有1:好路,2:坏路。从n个点选取最少的节点使到1节点的路径经过所有的坏路。 思路:dfs。对叶子节点:若连接其父节点的边权为2,则此叶子节点是必选的。 对非叶子节点:若连接其父节点的边权为2且子树中没有节点被选中,则也是必选的。 代码: #...

A_Thinking_Reed_的博客 299

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C. Valera and Elections DFS

C. Valera and Elections time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The city Valera lives in is going to hold el...

weixin_30344795的博客 98

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

codeforce C. Valera and Elections (DFS)

给你几组数代表那两个城镇有路连接和路的好坏。。 要找到最少的从城镇1到x的x集合能把所有的坏的路都找到并修好。。 C. Valera and Elections time limit per test 1 second memory limit per test 256 megabytes input standard input outp

asuxiexie的专栏 1030

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Codeforces Round #216 C Valera and Elections ( DFS )

题目链接:   C 题目大意:   给出N(N                   选择某个结点,从这个结点出发到达1结点的路都会被修复                   求这些结点的集合,使得这个集合最小并输出集合的结点(SPJ) 解题思路:  建立无向边,从1结点出发开始DFS,没遍历的点就遍历                   回溯的时候记录这段路的第一条需要修复的边

ンZee的解题报告 1106

C - Valera and Elections CodeForces - 369C【DFS+思维】

题意:一棵树有n个节点,n-1条边,现在有些边是坏了,当你修理某个点的时候,从这个点出发到1节点的所有边都会修好,问至少需要修理几次。思路:DFS#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+50; struct aa { int node,v; }; vector

Haipai1998的博客 352

CF 369C . Valera and Elections tree dfs 好题

            C. Valera and Elections The city Valera lives in is going to hold elections to the city Parliament. The city hasndistricts andn - 1bidirectional roads. We know that from...

weixin_30764137的博客 143

Codeforces Round #216 (Div. 2) C - Valera and Elections(图论和dfs)

#include #include #include #include #include #include #include #include #define N 100010 using namespace std; //Codeforces Round #216 (Div. 2) C - Valera and Elections(图论和dfs) vector m[N];

u012432475的专栏 511

Codeforces Round #216 (Div. 2) C. Valera and Elections (dfs)

题目链接 题意:给定一棵树,树的每条边的边权不是1就是2,现在规定如果选了树上的一个点,那么就可以把这个点和这个点的所有祖先节点的边权为2的边都变为1,求选最少的点使得整个树的边都为1。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+5; vector&lt...

qq_42479630的博客 187

Codeforces Round #216 (Div. 2), problem: (C) Valera and Elections 【树形dp+dfs】

题意 给出n个点,n-1对关系,表示两点之间是否连通,1为连通,2为断。选中一个点,可以修复1到该点的路径上所有坏的边。求最少要选出哪些点。 思路 由于顶点数比较多,然后带权值,我们采用链式前向星建边,然后dfs。 在回溯的过程中,如果在当前点的儿子存在有问题的边,那就不选这个点 反之,如果没有并且连接这个点的边是有问题的边,这个点就是所求的点。 回溯时情况: 儿子存在有问题的边 不选择这个点 ...

超逸の学习技术博客 649

Codeforces Round #216 (Div. 2) C. Valera and Elections

http://codeforces.com/contest/369/problem/C 做题时一直纠结于该怎么建立一颗多叉树,怎么存储比较合理而又方便。。。后来看到有人用vector存树,有点儿茅塞顿开的感觉。。。 1)用vector数组保存每个节点的子节点; 2)深搜,找到每个节点的父节点,从而建立一棵树; 3)遍历边,若某条边有问题则将该边的子节点col值赋1,沿该节点向上直至根节点的

曲径通幽处 952

C. Valera and Elections(ranting 1600)超详细题解

本系列的意义在于两点,一则是作为本人(一个编程初学者)的学习笔记记录,二则希望能对后来者提供一些帮助,因为本人也为新手,难免有些错误或讲述不清之处,恳请大家指出或提出建议,本人也会虚心修改。本系列的目标是帮助大家解决一些codeforces上,ranting1600+(或者之后会改为1300+,看博主水平吧)的题目。

Bill_HJR的博客 266

codeforces 369C Valera and Elections

为什么80%的码农都做不了架构师?>>> ...

weixin_34309543的博客 85

CodeForces - 369C - Valera and Elections

369C - Valera and Elections 思路:dfs,对于搜索到的每个节点,看他后面有没有需要修的路,如果没有,那么这个节点就是答案。 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back const int N=1e5+5;...

weixin_33895604的博客 178
上一篇: codeforces 501 C. Misha and Forest (思维)
下一篇: codeforces 4D. Mysterious Present
PinappleMi
博客等级 码龄9年 10粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值