牛客周赛44 F小红的基环树删边

原题链接:F-小红的基环树删边

题目大意:给一个基环树,一个n个点,n条边。若是删除第i边,从1到n的最短距离是多少?

思路:因为是基环树,那么从1到n最多就只有二条路径,那么就可以求出不在当前路线上的边删除后的最短路。

//冷静,冷静,冷静
//调不出来就重构 
#pragma GCC optimize(2)
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
//#define endl '\n'
using namespace std;
typedef long long ll;
typedef long double ld; 
typedef pair<ll,ll> pii;
const int N=1e6+10,mod=998244353;
ll h[N],e[N],ne[N],idx,f[N],w[N];
inline void add(ll a,ll b,ll id)
{w[idx]=id,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
pii p[N];
ll n;
bool st[N];
void dfs(ll x,ll dep)
{if(x==n)//如果搜索到了一条路径,那么用了的边,就被标记出来了 {for(int i=1;i<=n;i++){if(!st[i])//没有标记的边,就算删除了可不会对搜索的路径产生影响 {f[i]=min(f[i],dep);}}}for(int i=h[x];~i;i=ne[i]){ll j=e[i],id=w[i];if(!st[id])//如果当前边没有用过,那么就是可以使用 {st[id]=1;dfs(j,dep+1);st[id]=0;}}
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;memset(h,-1,sizeof(h));for(int i=1;i<=n;i++){ll a,b;cin>>a>>b;f[i]=1e18;add(a,b,i);add(b,a,i);p[i]={a,b};}dfs(1,0);for(int i=1;i<=n;i++){if(f[i]==1e18)f[i]=-1;//如果f[i]的值没有被更新,那么它就是二条路径的必经之路,如果删除就无法到达 cout<<f[i]<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

香橙派 AIpro开发体验:使用YOLOV8对USB摄像头画面进行目标检测

香橙派 AIpro开发体验&#xff1a;使用YOLOV8对USB摄像头画面进行目标检测 前言一、香橙派AIpro硬件准备二、连接香橙派AIpro1. 通过网线连接路由器和香橙派AIpro2. 通过wifi连接香橙派AIpro3. 使用vscode 通过ssh连接香橙派AIpro 三、USB摄像头测试1. 配置ipynb远程开发环境1.…

【程序填空题】日期比较(运算符重载)

题目描述 定义一个日期类CDate&#xff0c;包含属性&#xff1a;年、月、日&#xff0c;都是整数。 构造函数含单个参数&#xff0c;参数是八位整数&#xff0c;默认值为0&#xff0c;实现整数转为日期类型&#xff0c;例如参数为20170612&#xff0c;转为year2017, month6, …

Python实现批量删除Word文档内容中的“指定”内容(5)

前言 本文是该专栏的第5篇,后面会持续分享Python办公自动化干货知识,记得关注。 如果说,有这样的一个需求——有一批废弃词,需要你通过python,对目标word文档中包含这些废弃词的目标内容,进行批量删除。接到这样的需求,第一时间你会想到需要怎么去解决呢? 而本文,笔…

Python实现批量修改Word文档内容的字体大小(6)

前言 本文是该专栏的第6篇,后面会持续分享Python办公自动化干货知识,记得关注。 在本专栏上一篇文章《Python实现批量删除Word文档内容中的“指定”内容(5)》中,笔者有详细介绍通过python删除word文档内容中的“指定内容”。 而本文,在上一篇文章的思路基础上,再实现一…

Mybatis多表查询,报错:Column ‘id‘ in field list is ambiguous

错误原因&#xff1a; Mybatis 多表查询时&#xff0c;多个表有相同名字的字段&#xff0c;比如 id&#xff0c;名字重复&#xff0c;没有指定对应的表名。 有两个地方需要注意&#xff1a;(1)将其中一个重复字段的 Mybatis的 column 修改为其他的名字。(2)字段加上对应的表名…

Java 8 Lambda 表达式:新手入门指南

随着Java 8的发布&#xff0c;Lambda 表达式成为了Java编程中一个不可或缺的特性。Lambda 表达式允许我们以更简洁、更直观的方式表示函数式接口的实例。本文将引导新手如何开始使用Java 8的Lambda表达式。 1. 什么是Lambda表达式&#xff1f; Lambda 表达式是一个匿名函数&…

AI重塑了我的工作流

阅读内容 Inhai: Agentic Workflow&#xff1a;AI 重塑了我的工作流 4 种主要的 Agentic Workflow 设计模式 Reflection&#xff08;反思&#xff09;&#xff1a;让 Agent 审视和修正自己生成的输出。 举例&#xff1a;如果有两个 Agent&#xff1a;一个负责 Coding&#…

损失函数篇 | YOLOv8更换损失函数之Inner-IoU | 通过辅助边界框计算IoU损失

前言:Hello大家好,我是小哥谈。损失函数是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练模型时,我们希望通过不断调整模型参数,使得损失函数的值最小化,从而使得模型的预测值更加接近真实值。为弥补现有IoU损失函数在不同的检测任务中的泛化能力较弱且收敛…

unity制作app(9)--拍照 相册 上传照片

1.传输照片&#xff08;任何较大的数据&#xff09;都需要扩展服务器的内存空间。 2.还需要base64编码 2.1客户端发送位置的编码 2.2服务器接收部分的代码

数据链路层 + NAT技术

数据链路层&#xff1a;负责设备之间的数据帧的传送和识别。 一、以太网 以太网的帧格式 如何分离报头和有效数据&#xff1f; 报头是固定长度的 如何将数据交给上层协议&#xff1f; 通过类型&#xff0c;如果是0800&#xff0c;则交给IP协议&#xff0c;如果是0806&#xf…

Vue中使用Axios

安装Axios&#xff1a; 首先确保已经安装了Axios。你可以使用npm或者yarn进行安装&#xff0c;如下所示&#xff1a; pm install axios 导入Axios&#xff1a; 在需要发送HTTP请求的组件中&#xff0c;使用import语句导入Axios库。 import axios from axios; 发送HTTP请求&…

前端HTML5从入门到精通面试题及参考答案(2万字长文)

目录 描述HTML5与HTML4的主要区别是什么? HTML5为什么不基于SGML? HTML5的DOCTYPE声明是什么?

力扣爆刷第145天之图论五连刷(dfs和bfs)

力扣爆刷第145天之图论五连刷&#xff08;dfs和bfs&#xff09; 文章目录 力扣爆刷第145天之图论五连刷&#xff08;dfs和bfs&#xff09;总结一、797. 所有可能的路径二、200. 岛屿数量三、695. 岛屿的最大面积四、1020. 飞地的数量五、130. 被围绕的区域 总结 dfs是一条路走…

Debug - nacos配置 第二弹

好的 又是一个蠢蠢的 nacos 配置上出现的问题 在使用 nacos 进行 配置共享时 报错 Description: Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver c…

5.30边缘智能开发工具链全解析 | 2024高通边缘智能创新应用大赛公开课

2024高通边缘智能创新应用大赛系列公开课迎来精彩续篇&#xff01;本期课程将由阿加犀智能科技技术总监秦朝&#xff0c;为大家带来一场关于边缘智能方案与创新应用的深度分享。 作为本次大赛的联合主办方&#xff0c;阿加犀为比赛设备提供强大的软件支持。 各位参赛者将上手…

谷歌忙于手动删除自己搜索引擎中奇怪的人工智能答案

该公司确认正在“迅速采取行动”消除人工智能工具的一些奇怪反应。 社交媒体上充斥着谷歌新的人工智能概述产品的例子&#xff0c;这些产品说了一些奇怪的话&#xff0c;从告诉用户在披萨上涂胶水到建议他们吃石头。混乱的推出意味着&#xff0c;随着各种表情包的发布&#xf…

Android Gradle文件 一次通关

前言 Android的Gradle是每个项目一定包含的文件&#xff0c;用来定义构建配置的脚本文件&#xff0c;通常包括两个主要文件&#xff1a;build.gradle&#xff08;项目级别&#xff09;和build.gradle&#xff08;模块级别&#xff09;。 项目级别的 build.gradle 文件 项目级…

【Typescript】通过变量的值即可获取变量的类型【typeof 变量】

注意&#xff1a;只要变量的类型准确,则typeof获取变量的类型就不会错 enum Test {a "a0",b "b0" }// 这里的a是一个变量的值 let a: Test.a "a0" as Test.a// 这里的typeof a是一个类型【Test.a】 let x: typeof a Test.a

C++系列-定位new表达式(placement-new)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们先来强调一个很关键的问题&#xff0c;那就是在new和delete中的一一对应的问题&#xff0c; 我们先来看一段代码&#xff1a; #include<iostream> using namespace …

【C++】旋转字符串——精准与否,就是屠宰和手术的区别

✨题目链接&#xff1a; NC114 旋转字符串 ✨题目描述 字符串旋转: 给定两字符串A和B&#xff0c;如果能将A从中间某个位置分割为左右两部分字符串&#xff08;可以为空串&#xff09;&#xff0c;并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回t…