Codevs 2756 树上的路径

2756 树上的路径

 时间限制: 3 s     空间限制: 128000 KB     题目等级 : 大师 Master
题目描述 Description

给出一棵树,求出最小的k,使得,且在树中存在路径P,使得k>= S 且 k <=E. (k为路径P上的边的权值和)

输入描述 Input Description

第一行给出N,S,E,N代表树的点数,S,E如题目描述一致

下面N-1行给出这棵树的相邻两个节点的边及其权值W

输出描述 Output Description

输出一个整数k,表示存在路径P,并且路径上的权值和 K>=S , k<=E,若无解输出-1

样例输入 Sample Input

5 10 40

2 4 80

2 3 57

1 2 16

2 5 49

样例输出 Sample Output

16

数据范围及提示 Data Size & Hint

边权W<=10000,

保证答案在int(longint)范围内,且|E-S|<=50,

树上点的个数N<=30000

  

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #define N 30009
 6 using namespace std;
 7 int n,A,B,K,la,head[N],next[N<<1],ans=2*1e9,size[N];
 8 int dep[N],maxson[N],root,tot,lls,num,ls[N];
 9 bool v[N];
10 struct node
11 {
12     int fr,to,len;
13 }a[N<<1];
14 void addedge(int x,int y,int z)
15 {
16     a[++la].fr=x,a[la].to=y,a[la].len=z;
17     next[la]=head[x],head[x]=la;
18 }
19 void get_root(int x,int from)
20 {
21     size[x]=1;
22     maxson[x]=0;
23     for(int i=head[x];i;i=next[i])
24         if (!v[ a[i].to ]&&a[i].to!=from)
25             {
26                 get_root(a[i].to,x);
27                 size[x]+=size[ a[i].to ];
28                 maxson[x]=max(maxson[x],size[ a[i].to ]);
29             }
30     maxson[x]=max( maxson[x],tot-size[x] );
31     if (!root||maxson[x]<maxson[root]) root=x;
32 
33 }
34 void get_dep(int x,int from)
35 {
36     for (int i=head[x];i;i=next[i])
37         if (!v[ a[i].to ]&&a[i].to!=from)
38             {
39                 ls[++lls]=dep[ a[i].to ]=dep[x]+a[i].len;
40                 get_dep(a[i].to,x);
41 
42             }
43 }
44 int get_num(int x,int jian)
45 {
46     int i,j,k,rt=0;
47     ls[ lls=1 ]=dep[x]=jian;
48     get_dep(x,0);
49     
50     sort(ls+1,ls+lls+1);
51     for (i=1,j=lls;i<=lls;i++)
52         {
53             while (j>1&&ls[i]+ls[j]>K) j--;
54             if (j>i)rt+=j-i;
55         }
56     return rt;
57 }
58 void divide(int x)
59 {
60     num+=get_num(x,0);
61     v[x]=1;
62     for (int i=head[x];i;i=next[i])
63         if (!v[ a[i].to ]) 
64             {
65                 num-=get_num(a[i].to,a[i].len);
66                 tot=size[ a[i].to ];
67                 root=0,get_root(a[i].to,0);
68                 divide( root );
69             }
70 }
71 int main()
72 {
73     int i,j,k,x,y,z,last;
74     scanf("%d%d%d",&n,&A,&B); 
75     for(i=1;i<n;i++)
76     {
77         scanf("%d%d%d",&x,&y,&z);
78         addedge(x,y,z),addedge(y,x,z);
79     }
80     last=1e9;
81     for(K=A-1;K<=B;K++)
82     {
83         num=0;
84         memset(v,0,sizeof(v));
85         tot=n,root=0;
86         get_root(1,0);
87         divide(root);
88         if(num>last)
89         {
90             printf("%d\n",K);
91             return 0;
92         }
93         last=num;
94     }
95     printf("-1\n");
96 }

 备注:引用自Codevs 题解

转载于:https://www.cnblogs.com/suishiguang/p/6172038.html

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

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

相关文章

图形教程

众所周知&#xff0c;我们可以借助Java库制作游戏&#xff0c;这些库为我们提供制作游戏所需的图形。 因此&#xff0c;今天我将开始一个关于Java图形的非常新的部分。 我之前曾发表过有关如何制作所得税计算器的文章 。 首先要满足一些先决条件&#xff1a; -您应该对Java语法…

文件上传预览

<fieldset><legend>使用readAsDataUrl()方法预览图片</legend><input type"file" name"fileUpload" id"fileUpload" onchange"filePrevImg(this.files);" multiple"true" /><ul id"prevUpl…

c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast

一、介绍 dynamic_cast: 通常在基类和派生类之间转换时使用const_cast: 主要针对const和volatile的转换static_cast: 一般的转换(no run-time check)通常&#xff0c;如果你不知道该用哪个&#xff0c;就用这个。 reinterpret_cast: 用于进行没有任何关联之间的转换&…

K8S Pod Terminating/Unknown故障排查

一、pod异常出现现象 优雅终止周期(Graceful termination period): 当pod被删除时&#xff0c;会进入"Terminating"状态&#xff0c;等待容器优雅关闭。如果容器关闭所需时间超过默认期限(默认30秒)&#xff0c;则pod将保持在"Terminating"状态。 Finalize…

矩阵指数 matlab,矩阵指数 - MATLAB Simulink Example - MathWorks 中国

方法 1&#xff1a;加权平方expmdemo1 是以下著作中算法 11.3.1 的实现&#xff1a;Golub, Gene H. and Charles Van Loan.Matrix Computations, 3rd edition.Baltimore, MD:Johns Hopkins University Press, 1996.% Scale A by power of 2 so that its norm is < 1/2 .[f,e…

向导设计模式

我们都喜欢巫师……。 &#xff08;我的意思是软件向导&#xff09;。 我们总是很高兴跳上那些“下一步”按钮&#xff0c;就像我们在我们的时髦的小鸡上跳舞一样。 因此&#xff0c;今天我们将您心爱的向导带入您的编码经验中。 让我们跳入一个例子。 假设您要设计一个Conserv…

IO(三)字节流练习

public class ByteStreamDemo {/*int available(); 可以取得输入文件的大小&#xff08;字节个数&#xff09;,没有返回0void close(); 关闭输入流abstract int read(); 读取一个字节&#xff0c;并把读…

基于matlab的人脸五官边缘检测方法,人脸边缘检测方法研究与仿真

人脸表情是人类情感的主载体之一,它含有丰富的人体行为信息。通过脸部表情能够表达人微妙的情绪反应以及对应的心理状态[1],人脸表情识别技术随着人们对表情信息的日益重视而受到关注,现已成为人们研究的热点。基于几何特征提取是一个快速、直接、有效的人脸表情识别方法,运用基…

GWT –利弊

我喜欢JavaScript。 随着jQuery和Mootools的出现&#xff0c;我对JavaScript的热爱仅增加了很多倍。 只要有选择&#xff0c;我就可以将上述框架中的任何一个用于我开发的任何Web应用程序。 但是进入服务行业后&#xff0c;我不得不一次次屈服于客户的压力&#xff0c;并在他们…

秦九韶算法matlab实验报告,数值分析上机实验报告.doc

实验报告一题目&#xff1a; (绪论) 非线性方程求解及误差估计摘要&#xff1a;非线性方程的解析解通常很难给出&#xff0c;因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法、Newton法和改进的Newton法。可以节省计算机的计算时间&#xff0c;还能减小…

Flex 布局教程:语法篇

网页布局&#xff08;layout&#xff09;是CSS的一个重点应用。 布局的传统解决方案&#xff0c;基于盒状模型&#xff0c;依赖 display属性 position属性 float属性。它对于那些特殊布局非常不方便&#xff0c;比如&#xff0c;垂直居中就不容易实现。 2009年&#xff0c;W3…

练习错误

form:阻止表单提交的方法一&#xff1a;在form标签中给出以下代码&#xff1a; 1 onsubmit "return False" 方法二&#xff1a;设置事件阻止 1 e.preventDefault() js中判断&#xff1a;只要非数字都应该表示为字符串 1 if(Email.indexOf("") -1){ 2 …

JavaFX 2中的PopupMenu

创建弹出菜单 要在JavaFX中创建Popupmenu&#xff0c;可以使用ContextMenu类。 您向其中添加MenuItems&#xff0c;也可以使用SeparatorMenuItem创建可视分隔符。 在下面的示例中&#xff0c;我选择子类ContextMenu并将MenuItems添加到其构造函数中。 public class Animatio…

matlab中CH指标聚类评价指标,MATLAB聚类有效性评价指标(外部)

MATLAB聚类有效性评价指标(外部)作者&#xff1a;凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/更多内容&#xff0c;请看标签&#xff1a;MATLAB、聚类前提&#xff1a;数据的真实标签已知&#xff01;1. 归一化互信息(Normalized Mutual information)定义程序functio…

学习进度表

周数 专业学习目标 专业学习时/每分钟 新增代码量 知识技能总结 第六周 ps的图像处理 80 30 看书加以实践 第七周 数据结构的链式结构 100 50 多做习题加以巩固知识 第八周 网页设计 80 30 多多练习&#xff0c;学会用代码设计 第九周 图片美工 70 30 慢慢学会运用软…

Axis通过wsdd部署Web Service

axis网上的教程很多&#xff0c;不过搜来搜去&#xff0c;总是只有那么几篇。仔细看了一下那几篇文章&#xff0c;都感觉到不是自己想要的&#xff0c;所以自己整理了一篇分享一下。 本文介绍axis应用的一个小例子&#xff0c;没有麻烦的命令行操作&#xff0c;只需照下面的步骤…

弹簧特性

1.概述 本教程将展示如何通过XML或Java配置在Spring中设置和使用属性 。 在Spring 3.1之前 &#xff0c;将新的属性文件添加到Spring并使用属性值并不像它那样灵活和健壮。 从Spring 3.1开始 &#xff0c;新的Environment和PropertySource抽象大大简化了此过程。 2.通过XML名…

php-cgi cpu很高,php-cgi占用cpu资源过高的解决方法

转的网上的&#xff0c;不过对PHP-CGI菜鸟的人&#xff0c;还是有点帮助的。1. 一些php的扩展与php版本兼容存在问题&#xff0c;实践证明 eAccelerater与某些php版本兼容存在问题&#xff0c;具体表现时启动php-cgi进程后&#xff0c;运行10多分钟&#xff0c;奇慢无比&#x…

《做中学》读后有感

《做中学》读后有感 最近读了娄老师的“做中学”系列文章&#xff0c;有很大感触&#xff0c;今天想着重谈一谈我在学习方面收到的启发。 如何成功get一项技能 如果问到“如何开始get一项技能”&#xff0c;我想我们应该是最有发言权的一代。从小就被爸爸妈妈引导着参加各种课外…

多表之间关联查询

内连接 jion on 自连接 本表进行内连接的查询形式 外链接&#xff1a; 左链接 写法&#xff1a;select 字段 from 表1 t left join 表2 s on t.字段1 s.字段1 where 条件 或者 作用&#xff1a;保证左边的表的数据全部显示&#xff0c;包括空的 右链接 写法 &#xff1a;sele…