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.pswp.cn/news/373260.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373260.shtml
英文地址,請注明出處:http://en.pswp.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…