input file: drive.in
output file: drive.out
time limit: 2 second
工頭cky 最近開了一家**公司,開始經商。作為cky 的忠實小弟,jyb 當了cky 老總的司機。一天晚上,
cky 突然找到了乙個新的客戶,所以第二天一早要急著從成都去上海談生意(設全國一共有n 個城市, 成都
編號為1,上海編號為n),城市之間有高速公路,每條高速公路都有乙個最高限速和長度。cky 想:我應該
在今晚就告訴客戶我最快多久能到上海,不然客戶就可能先和別人談生意了。所以他就讓jyb 計算一下最快
多久能到。
jyb 作為一名經驗豐富的老司機,看了一眼天氣預報,天氣預報說:全國範圍內有一條高速公路第二天可能
下大雨(大雨天氣的話,車速會下降75%),但坑爹的是居然不知道是哪一條,準確資訊要第二天一早才知
道。現在jyb 擁有全國高速公路圖,為了回答乙個盡量早但又不失信於客戶的時間,jyb 想請你幫幫忙。
ps: 雖然cky 很急,但是他還是告誡jyb 不能超速行駛。
第二天知道哪會下雨後,jyb 自然會作出正確的抉擇。
遲到肯定就是失信於客戶啦!
input
第1 行,2 個整數n;m,表示城市數和高速公路數。
接下來m 行,每行4 個整數u; v; speed; length,表示該條高速公路連線的兩個城市u; v,以及最高限速speed
和路長length。
output
輸出滿足題意的時間,保留4 位小數。
sample
drive.in
3 3
1 2 100 100
2 3 100 100
1 3 100 400
drive.out
4.0000
drive.in
2 1
1 2 100 100
drive.out
4.0000
note
• 對於30% 的資料,1 n 102,1 m 103;
• 對於100% 的資料,1 n 4 103,1 m 104,60 speed 120 ,200 length 1000。
注意是單向邊(題說錯了)
盜版瑪麗卡,stl優化dijkstra超時(因為是稀疏圖)
先求最短路,在一條一條地下雨
#include
#include
#include
#include
#include
const
double inf = 1000000000.0;
const
int maxn = 40005;
const
int maxm = 300000 + 5;
using
namespace
std;
struct edgee[maxm];
int h[maxn],cnt,pre[maxn];
double dis[maxn];
bool vis[maxn];
int q[maxn],head,tail;
int n,m;
void adde(int u,int v,double w)
void init()
double spfa( bool ort )}}
vis[u] = false;
head++;
}return dis[n];
}int main()
int now = n;
double ans = spfa(true);
while( now != 1 )
printf("%.4lf\n",ans);
return
0;}
機房練習賽4 3 graph
input file graph.in output file graph.out time limit 1 second jyb 給大家講過強連通分量,強連通分量中的任意兩點之間都可以互相到達。這個條件感覺很苛刻,大部分圖 都不能滿足。現在jyb 告訴你乙個新的概念 單向連通圖 如果有向圖中,對於...
20170117 機房 練習賽
現代科學,面廣枝繁,不是一輩子學得了的。惟一的辦法是集中精力,先打破一缺口,建立一塊或幾塊根據地,然後乘勝追擊,逐步擴大研究領域。此法單刀直入,易見成效。王梓坤 我熱愛生活,我是一名快速成長的oier include include include define program name color...
機房練習賽 Dinner
本來看到這道題的第一想法是環形區間dp的,但是模擬完樣例我就恍然大悟,在10的時間內可以同時讓1,5點完餐,那不就是找最大值得最小值嗎?然後就是二分答案了,二分最少時間。然後就是我的玄學check 我在考試的時候是想到了變成二倍鏈在區間上處理的,但我直接o n 處理了每個區間的和不大於x的塊,然後列...