205 接力賽跑

2021-09-24 21:43:31 字數 1918 閱讀 2736

【題目描述】:

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和小公尺淨水器上市了。這看似是一場小公尺阿里互撕的撕逼大戰,實際卻是按...