【題目描述】:
n只奶牛(編號為1…n)在進行乙個特別的接力賽跑,這個比賽特別之處在於,若干只奶牛可以同時跑。
在t=0時刻,牛1開始沿著跑道跑,l_1秒後跑完一圈重新到達起點線。通常,牛i跑完一圈需要的時間為l_i秒。當牛1重新越過起點線的瞬間,它會通知另外m_1只奶牛立即起跑。通常,牛i會通知另外m_i(1<=m_i<=n)只奶牛a_ij(1<=j<=m_i)起跑。注意可能出現m_i為0並且a_i不存在的情況。
每乙隻開始賽跑的奶牛,等到它回到起點時,都會通知其他奶牛起跑。可能出現多隻奶牛通知同一只奶牛起跑的情況,但是每乙隻奶牛只願意跑一圈,所以它被第二次叫到的時候就不願意再跑了。
農場主希望你幫他確定總的賽跑時間(也就是從比賽開始到最後乙隻奶牛越過終點的時間)。
【輸入描述】:
第一行乙個整數n,表示參賽的牛的數量。
第2行到第n+1行:第i+1行包含多個用空格隔開的整數:l_i、m_i和m_i個整數a_ij
【輸出描述】:
乙個整數,表示整個比賽結束的時間。
【樣例輸入】:
54 2 2 4
3 3 1 3 4
7 1 5
4 2 3 5
1 0【樣例輸出】:
【樣例說明】:
時刻 事件
0 牛1起跑
4 牛1跑完一圈;通知牛2和牛4。
4 牛2起跑(完成賽跑的時間4+3=7)
4 牛4起跑(完成賽跑的時間4+4=8)
7 牛2跑完一圈;通知牛1、牛3和牛4。
7 牛1和牛4忽略重複訊號。
7 牛3起跑(完成賽跑的時間7+7=14)
8 牛4跑完一圈;通知牛3和牛5。
8 牛3忽略重複訊號。
8 牛5起跑(完成賽跑的時間8+1=9)
9 牛5跑完一圈但不通知其他牛起跑。
14 牛3跑完一圈;通知牛5。
14 牛5忽略重複訊號。
14 所有牛完成賽跑。
【時間限制、資料範圍及描述】:
1<=n<=1000, 1<=l_i<=1000
本來以為是模擬,後來發現是最短路;
相當於每只牛以最快速度將訊息轉給最後乙隻牛;
#include
#include
#include
using
namespace std;
const
int mm=
2000005
,inf=
1000000000
;bool book[
1005];
int n,u[mm]
,v[mm]
,w[mm]
,first[
1005
],next[mm]
,lv,lw[
1005
],lc,po,dis[
1005
],num,kl,cnt,mark,ans;
inline
intget()
return res;
}void
add(
int mu,
int mv,
int mw)
void
init()
}}void
dijkstra()
for(
int i=
1;i) book[mark]=1
;kl=first[mark]
;while
(kl!=-1
)}for(
int i=
1;i<=n;i++
) ans=
max(ans,dis[i]
+lw[i]);
printf
("%d\n"
,ans);}
intmain()
多執行緒 模擬接力賽跑
接力賽跑的執行緒,實現runnable 2public class myrunnable implements runnable 13 thread thread.currentthread getname 14 system.out.println thread 拿到了接力棒!15 num 16f...
馬拉松接力賽(貪心)題解(1252)
備註 要多思考啊,盡量學以致用啊,貪心 一定要多想想是不是具備無後效性!盡量開拓思路啊!某城市冬季舉辦環城25km馬拉松接力賽,每個代表隊有5人參加比賽,比賽要求每個的每名參賽選手只能跑一次,一次至少跑1km 最多只能跑10km,而且每個選手所跑的公里數必須為整數,即接力的地方在整公里處。劉老師作為...
小公尺縱向拓展接力賽 接棒新國貨「熱水器」
空氣是不行的,水是不行的,手機再好又有什麼用呢?去年年底的世界網際網路大會上,阿里董事局主席馬雲對小公尺手機的吐槽。乙個月後,小公尺公布了一款售價899元的小公尺空氣淨化器,而7月16日下午,小公尺召開發布會,宣布新國貨小公尺2s和小公尺淨水器上市了。這看似是一場小公尺阿里互撕的撕逼大戰,實際卻是按...