[NOIP2007]树网的核【搜索,最短路…

CSP-J/S第二轮历年真题考点分析 T4 矩形覆盖 动态规划(高级)、搜索、剪枝。11.NOIP2015 提高组 DAY1。13.NOIP2014 提高组 DAY1。T2 联合权值 动态规划(高级)、前缀和。15.NOIP2013 提高组 DAY1。17.NOIP2012 提高组 DAY1。18.NOIP2012 提高组 DAY2。19.NOIP2011 提高组 DAY1。T2 选择客栈 动态规划(高级)、RMQ。20.NOIP2011 提高组 DAY2。5.NOIP2018 提高组 DAY1。6.NOIP2018 提高组 DAY2。 阅读详情

【问题描述】

设T=(V, E, W)是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。

路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和。我们称d(a,b)为a, b两结点间的距离。

D(v, P)=min{d(v, u),u为路径P上的结点}。

树网的直径:树网中最长的路径成为树网的直径。对于给定的树网T,直径不一定是唯一的,但可以证明:各直径的中点(不一定恰好是某个结点,可能在某条边的内部)是唯一的,我们称该点为树网的中心。

偏心距ECC(F):树网T中距路径F最远的结点到路径F的距离,即

ECC(F)=max{d(v,F),v∈V}

任务:对于给定的树网T=(V, E,W)和非负整数s,求一个路径F,他是某直径上的一段路径(该路径两端均为树网中的结点),其长度不超过s(可以等于s),使偏心距ECC(F)最小。我们称这个路径为树网T=(V,E,W)的核(Core)。必要时,F可以退化为某个结点。一般来说,在上述定义下,核不一定只有一个,但最小偏心距是唯一的。

下面的图给出了树网的一个实例。图中,A-B与A-C是两条直径,长度均为20。点W是树网的中心,EF边的长度为5。如果指定s=11,则树网的核为路径DEFG(也可以取为路径DEF),偏心距为8。如果指定s=0(或s=1、s=2),则树网的核为结点F,偏心距为12。

 

【输入】

输入文件core.in包含n行:

第1行,两个正整数n和s,中间用一个空格隔开。其中n为树网结点的个数,s为树网的核的长度的上界。设结点编号以此为1,2,……,n。

从第2行到第n行,每行给出3个用空格隔开的正整数,依次表示每一条边的两个端点编号和长度。例如,“2 47”表示连接结点2与4的边的长度为7。

【限制】

40%的数据满足:5<=n<=15

70%的数据满足:5<=n<=80

100%的数据满足:5<=n<=300,0<=s<=1000。边长度为不超过1000的正整数

 

 

解题思路:这个题貌似有很多的解法,不过最好写的应该就是搜索了,我也看了网上很多人的博客,很多不错的东西。。首先我们要找出一条直径,我们任取一点a,dfs找出离这个最远的一点b,再找出离b最远的点c,则b到c为一条直径。。为什么这一条就是直径呢?任一点开始在树上的最长路径必然经过中点,再从中点爬过一条半径,若不经过中点,则可以找出一条大于直径的路径,矛盾。。所以b一定是一条直径的一个端点,所以b到c为一条直径。。还有一个性质就是每条直径上都会存在一个core,即用哪条直径去找最小偏心距都是一样的。。这个性质我暂时还不知道怎么证,,待以后证出来补上。。有了这两条性质,我们就可以枚举一条直径上的路径,然后dfs出偏心距(或者floyd预处理),不断更新答案即可。

 

代码:

#include
#include
#include
using namespace std;
intpath[305],aa,bb,q,a[305][305],u[305],s,maxx,get,get1,i,j,k,n,len,biao,l,ans;
bool b;
void dfs(int k,int d)
{u[k]=1;
int t=0;
for (int i=1;i<=n;i++)
if (u[i]==0&&a[k][i]>0) {t++;dfs(i,d+a[k][i]);}
if (t==0&&d>maxx) {maxx=d;get=k;}
}
void dfs1(int k,int t,int d)
{u[k]=1;
path[d]=k;
if (k==t) {b=false;len=d;return;}
for (int i=1;i<=n;i++)
if (u[i]==0&&a[k][i]>0&&b) dfs1(i,t,d+1);
}
void find(int k)
{int i;
for (i=biao+1;i<=len;i++)
if (l+a[path[i-1]][path[i]]<=s){biao=i;l+=a[path[i-1]][path[i]];} else break;
memset(u,0,sizeof(u));
for (i=k;i<=biao;i++)
u[path[i]]=1;
int maxl=0;
for (i=k;i<=biao;i++)
{maxx=0;
dfs(path[i],0);
maxl=max(maxl,maxx);
//printf("%d %d\n",k,maxx);
}
ans=min(maxl,ans);
}
int main()
{scanf("%d%d",&n,&s);
memset(a,0,sizeof(a));
for (i=1;i<=n-1;i++)
{scanf("%d%d%d",&aa,&bb,&q);
a[aa][bb]=q;a[bb][aa]=q;
}
maxx=0;
dfs(1,0);
get1=get;
maxx=0;
memset(u,0,sizeof(u));
dfs(get,0);
memset(u,0,sizeof(u));
b=true;
dfs1(get1,get,1);
biao=1;l=0;ans=1000000;
path[0]=304;path[len+1]=304;
for (i=1;i<=len;i++)
{if (biao
find(i);
if (biao>i) l-=a[path[i]][path[i+1]];
}
cout<<ans;
}


[NOIP2010]乌龟棋【动态规划】 【问题描述】 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数)。棋盘第1格是唯一 的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。 乌龟棋中M张爬行卡片,分成4种不同的类型(M张卡片中不一定包含所有4种类型 的卡片,见样例),每种类型的卡片上分别标有1、2、3、4四个数字之一,表示使用这种卡 片后,乌龟棋子将向前爬 阅读详情

相关推荐

从零构建基于ZYNQ与AD9361的SDR信号源:FPGA逻辑与射频前端的协同设计

本文详细介绍了从零开始构建基于ZYNQ与AD9361的SDR信号源的完整流程。通过解析FPGA逻辑与射频前端的协同设计,重点阐述了如何利用FPGA生成基带信号,并通过ARM处理器配置AD9361,最终实现一个可编程的2.4GHz载波信号发生器。内容涵盖硬件选型、Vivado环境搭建、AXI总线通信、LVDS接口设计及软件驱动开发,为SDR开发者提供了实用的实战指南。

weixin_29200485的博客 214

[NOIP2007 提高组] 树网的核

设T=(V,E,W)是一个无圈且连通的无向图(也称为无根树),每条边都有正整数的权,我们称T为树网(),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和。我们称d(a,b)为a,b两结点间的距离。D(v,P)=min{d(v,u)},u为路径P上的结点。...

**祺的博客 526

STRING数据库的蛋白质相互作用(PPI)网络分析

在转录调控相关的文献中,我们经常能够看到这样的蛋白质相互作用网络(protein protein interaction network,PPI network)。具体而言,这些相关的文献中首先通过RNA-seq、表达谱芯片或者蛋白质组分析等,找到了在不同分组样本间一系列的差异表达基因或蛋白。

weixin_43029125的博客 9458

题解——[[NOIP2007]树网的核](树的直径)

题解——[NOIP2007]树网的核(加强版) 这道题的原数据太水了,ssw02只讲O(n)做法 题目搬运: BZOJ1999 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。 路径:树网中任何两结点a,b都存在唯一的一条简...

weixin_30561177的博客 178

SAP LTMC实战指南:物料主数据高效导入全解析

本文详细解析了SAP LTMC工具在物料主数据高效导入中的实战应用,包括工具选择、项目搭建、模板定制、数据导入全流程及常见问题解决方案。重点介绍了LTMC的预置模板、LTMOM灵活配置、数据校验机制等核心功能,帮助用户快速掌握SAP数据迁移技巧,提升工作效率。

weixin_33738555的博客 435

3D视觉引导技术在机器人焊接中的应用

通过对比传统的2D视觉和3D视觉技术在焊接领域的应用差异,探讨了3D视觉引导技术在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势。本文对3D视觉引导技术在机器人焊接中的应用进行了深入探讨,总结了其在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势,并通过应用案例展示了其在焊接路径规划、焊缝检测和焊接质量控制等方面的重要作用。1. 提高焊接精度:3D视觉引导技术能够精确测量焊接工件的三维形状和位置,为机器人提供精准的焊接路径规划和跟踪,从而提高焊接精度。三、3D视觉引导技术概述。

2302_79273122的博客 1836

NOIP 2007 树网的核

卡题面暴搜

我要吃熊猫 442

【01】总目录——软件设计师50讲通关地图|从零基础到工程师职称

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏的01篇总目录,系统梳理了50篇博文的完整架构与核心逻辑。专栏覆盖软考软件设计师(中级)全部考点,分为导学规划、基础知识、设计模式、下午题专项、算法实战、冲刺模拟、收官进阶七大模块,既兼顾上午题75道单选题的理论攻坚,也聚焦下午题案例分析的解题能力提升。每篇博文均包含考点精讲、真题解析、实战技巧与速记方法,配套可运行代码、解题模板及备考资源。无论你是零基础转行、在校学生还是在职程序员,都能通过这份学习地图明确进度、精准定位薄弱环节,高效搭建知识体系

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1281

NOIP 2007第四题 树网的核

贪吃蛇没想到如此早就出来了,现在发个代码给大家饱饱眼福

Silence的程序实验室 1159

最优化方法与数学建模

在本篇博客中,我们将探讨最优化方法在数学建模中的应用。首先,我们将介绍几种常见的最优化方法,如梯度下降、牛顿法和遗传算法。接着,我们将详细阐述这些方法的原理和算法。最后,我们将通过一个数学建模案例,展示如何使用Matlab实现这些方法。本文旨在为大家提供一个清晰的思路,以便更好地理解和应用最优化方法。

YOLO 439

基于MATLAB的鲁棒主成分分析(Robust PCA)图像去噪

鲁棒主成分分析(Robust PCA)是一种有效的图像去噪方法,它能够在保持图像细节的同时去除噪声。本文将介绍如何使用MATLAB实现基于鲁棒PCA的图像去噪,并提供相应的源代码。它假设噪声是随机的、高斯分布的,并将图像分解为一个低秩矩阵和一个稀疏矩阵的和。低秩矩阵表示图像的结构和纹理信息,稀疏矩阵表示图像中的噪声和细节信息。接下来,我们将图像矩阵减去均值,得到规范化的图像矩阵。然后,我们将灰度图像转换为矩阵形式,并计算图像的均值。通过分离出低秩矩阵和稀疏矩阵,我们就得到了去噪后的图像和残差图像。

DevRevolt的博客 1125

P1099 NOIP 2007 提高组 树网的核

再进一步优化,我们就可以直接将直径以外的所有节点到直径的最大值V1得出来,之后,再枚举直径上所有最大路径(路径长度小于规定长度的最大值),我们通过滑动窗口,将每个路径的头节点和尾节点找到,之后,我们再对头节点到下一个节点的值V2与尾节点到直径末尾的值V3得出来,进行大小比较。我们可以通过枚举的方法寻找任意两个节点,只要这两个节点的距离小于所规定的长度,我们就将这条路径上的所有节点走一遍dfs,dfs时将这条路径上的节点除外.之后,我们将每个节点的距离最大值取出来,将所有的最大值取最小的那个就是我们需要的.

2301_80834940的博客 72

【ArcGIS Pro微课1000例】0065:制作千层饼多图层叠加效果

右键dem图层,点击符号系统,在右侧的符号系统窗口中,选择拉伸,勾选【显示名称】和【显示全部】,选择高程色带7。由于数据具有高程源,因此可以将数据进行三维显示。右键地面→添加高程源图层。打开ArcGIS PRo,新建一个局部场景,命名为千层饼。设置了高程源数据之后,千层饼一下子就变成了三维形状。数据默认都是在一个平面上,以默认的符号系统显示。到此为止,每个图层均为平面的千层饼已经做好了。将TIN图层的高程偏移设置为-1000。最后将等高线的高程设为2000.移除工程默认加载的图层。默认即可,不需要做修改。

智慧空间实验室 1156

[NOIP2007] 提高组 洛谷P1099 树网的核

题目描述 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和。我们称d(a, b)为a, b两结点间的距...

weixin_33670786的博客 135

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

树网的核 Vijos1362 NOIP2007 树结构 直径 暴搜

题面在最下方。 树结构的题做多了就会发现,本题所谓的树网的核(一段偏心距ECC最小的路径)一定是在树的直径上的。 我刚开始做的时候没想到这个,然后写了三个dfs讨论每条直径 Orz 其实只要认识到了这一点,那么这个题maxn=300,轻轻松松打暴力啊! 首先跑一次最短路得到整张图内点对<s,t>的距离 (Floyed是可以过的,但是我比较喜欢枚举每个点进行spfa) 两...

weixin_34244102的博客 121

计算机控制技术及应用

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

CSP-S (NOIP提高组) 历年复赛真题考察内容(1999~2020)

TZOJ题目分类 1.NOIP2020 T1 排水系统 拓扑排序、高精度 T2 字符串匹配 KMP T3 移球游戏 构造、分治 T4 微信步数 多项式 2.CSP-S 2020 T1 儒略日 大模拟、二分 T2 动物园 二进制 T3 函数调用 拓扑排序、记忆化搜索 T4 贪吃蛇 大模拟、双端队列 3.CSP-S 2019 DAY1 T1 格雷码 模拟 T2 括号树 树型DP T3 树上的数 贪心、深搜 4.CSP-S 2019 DAY2 T1 Emiya 家今天的饭 动态规划(高级) T2 划分 单调队列D

BobHuang的博客 8443

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

noip2017考前整理(未完)

快考试了,把我以前写过的题回顾一下.Noip2007 树网的核:floyd,推出性质,暴力.Noip2008 笨小猴:模拟Noip2008 火柴棒等式:枚举Noip2008 传纸条:棋盘dpNoip2008 双栈排序:将复杂条件转化为简单约束,二分图染色判断可行性,模拟.Noi2010 能量采集:常见套路,求:ΣΣgcd(i,j),设t = gcd(i,j),能算出gcd=t的点对有(n...

weixin_30387663的博客 436

noip2007树网的核题解

废话不说,直接进入正题。在这里本题将介绍四种方法。 算法一:在树中,最短路等于最长路,因此我们可以用floyd算法求每两点间的距离,并找出直径。然后枚举直径上的核,模拟得出偏心距。这样的算法时间复杂度是O(n^3)。在这里有一个性质,对于每条直径都有核,而最小偏心距是唯一的,所以我们只要枚举其中一条直径就可以了,证明就略啦。 且对于直径上的一条路径F,它的偏心距是可以在...

weixin_30911451的博客 191

NOIP刷题

搜索 [NOIP2013]华容道 最短路+带剪枝的搜索,是一个思维难度比较大的题目。 CF1064D Labyrinth 考虑贪心,用双向队列bfs [NOIP2017]宝藏 剪枝搜索出奇迹 题解:https://www.cnblogs.com/fengxunling/p/9777606.html luogu 有趣的数 [ZJOI2007] 时态同步 [NOIP2...

dimeitong1731的博客 976

BZOJ1999 NOIP2007 洛谷P1099 P2491 SDOI 2011

Description: 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边到有正整数的权,我们称T为树网(treebetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a, b)表示以a, b为端点的路径的长度,它是该路径上各边长度之和。我们称d(a, b)为a, b两...

weixin_30820077的博客 108

NOIP2001-2010题目简介

前言 可以说2010-2011是一个分界线,不但题目数量从4道变成了6道,而且在考察知识的侧重点也发生了一定变化。在2010及之前难题有一部分集中在搜索+剪枝算法中(如:传染病控制,靶形数独,虫食算),还有少量集中在数据结构上;NOIP2010之后难题开始集中在数据结构,而且数学类题几乎每年都有,同时题目描述,样例数据,测试数据也更加完善。可以看见NOIP正日渐趋于成熟,难度也在逐年增大。 对...

Hi_KER的博客 589

NOIP提高组复赛2001-2010题目简介及难度分析

前言 可以说2010-2011是一个分界线,不但题目数量从4道变成了6道,而且在考察知识的侧重点也发生了一定变化。在2010及之前难题有一部分集中在搜索+剪枝算法中(如:传染病控制,靶形数独,虫食算),还有少量集中在数据结构上;NOIP2010之后难题开始集中在数据结构,而且数学类题几乎每年都有,同时题目描述,样例数据,测试数据也更加完善。可以看见NOIP正日渐趋于成熟,难度也在逐年增大。 对于N...

zgwzgw的博客 477

NOIP前刷题记录

因为本蒻实在太蒻了。。。对于即将到来的NOIP2018ssfd,所以下决心要把自己近期做过的题目(衡量标准为洛谷蓝题难度或以上)整理一下,归归类,简单地写一下思路,就当作自己复习了吧qwq 本随笔持续更新,自2018.9.19开始,计划更新到2018NOIP截止 (但是因为最近写的比赛题比较多。。但是没有办法把这些题放上来。。所以只能放上主流OJ上面有的题) 如果本蒻今年有幸没有AFO掉...

weixin_30695195的博客 264
上一篇: [NOIP2006]金明的预算方案【动态规…
下一篇: [NOIP2008]传纸条【多维DP】
Tag_king
博客等级 码龄12年 15粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值