提高組 燃燒木棍
time limit:10000ms memory limit:65536k
total submit:23 accepted:16
case time limit:1000ms
description
tom是調皮的孩子,特別喜歡玩火,現在他手上有若干根長度分別為1和 的木棍,還有一張不能燃燒的平板,他把平板劃分成長度為1的單元格,並標上座標。然後按以下規則把平板上的木棍組成乙個連通圖:木棍的兩端必須放在單元格的頂點上。即長度為1的木棍放在單元格的某一邊上,長度為 的木棍放在單元格的對角線上。
tom的點火規則是,只能從木棍的兩端點火,而不能從木棍的中間點火。如圖,不能在a點點火,但在c點或b點點火都是充許的。點火後,火會沿著木棍向前燃燒(每根都有自己的燃燒速度),並能點燃與它相接的其它木棍。
任務:寫一程式計算從**開始點火,使得燃燒的總時間最短,輸出最短時間。
input
輸入檔案 bete.in 第一行為乙個正整數n,表示組成圖形的木棍數目,後面共有n行,每行5個數: x1 y1 x2 y2 t,其中(x1, y1)和(x2, y2)分別表示木棍兩端的座標,t表示木棍燃燒時間,是指從木棍的某一端點火燃燒到別一端,燃完所需的時間。
output
輸出檔案 bete.out 是乙個保留4位小數的實數,表示所有木棍完全燃燒的最少時間。
sample input
輸出檔案 bete.out 是乙個保留4位小數的實數,表示所有木棍完全燃燒的最少時間。sample output約束 1≤n≤40
保證圖形是連通的,所有的木棍長度都是1或 ,沒有任何兩根木棍重合.
-200≤x1, y1, x2, y2≤200; 0≤t≤107.
如果你的輸出結果與標準答案相差小於0.001,則認為你的結果正確。
樣例1hint10 0 1 1 1
樣例25
0 0 0 1 1
1 0 0 1 10
0 0 1 0 1
0 0 1 1 1
2 2 1 1 1
樣例33
1 1 1 2 10
1 2 2 2 10
1 1 2 2 50
careercup 高等難度 18 6
18.6 設計乙個演算法,給定10億個數字,找出最小的100萬個數字。假定計算機記憶體足以容納全部10億個數字。解法 方法1 排序 按公升序排序所有的元素,然後取出前100萬個數,時間複雜度為o nlog n 方法2 大頂堆 我們可以使用大頂堆來解題。首先,為前100萬個數字建立乙個大頂堆 然後,遍...
LeetCode 第186場周賽
周賽小結 p1 可以統計總的0,1個數,然後從左往右掃,就可以了。看了下資料比較小,就寫的很暴力。from collections import counter as c class solution def maxscore self,s str int n,ret len s 0 for i i...
186 USACO Oct08 牧場旅行
輸入檔案 pwalk.in輸出檔案 pwalk.out簡單對比 時間限制 1 s 記憶體限制 128 mb n個被自然地編號為1.n奶牛 1 n 1000 正在同樣被方便的編號為1.n的n個牧場中吃草。更加自然而方便的是,第i個奶牛就在第i個牧場中吃草。其中的一些對牧場被總共的n 1條雙向通道的一條...