hdu 4393 優先佇列

2022-06-03 15:48:12 字數 1199 閱讀 4195

用優先佇列儲存每個人的初始距離和編號,每輪求出最快的人,然後pop掉

一開始想遍歷佇列的,後來發現佇列沒辦法遍歷,汗-_-!

題意,給幾個第一秒衝出的距離和以後速度,求每秒後最前面人的編號,求完後最前面的退出

2

3100 1

100 2

3 100

51 1

2 23 3

4 13 4

case #1:

1 3 2

case #2:

4 5 3 2 1

hint

the first case:

1st second end

player1 100m (boom!!)

player2 100m

player3 3m

2nd second end

player2 102m

player3 103m (boom!!)

3rd second end

player2 104m (boom!!)

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8const

int maxn=110;9

intn,m,t;

10struct

node

1116 friend bool

operator

<(node a,node b)

1721

};22 priority_queueq[maxn];

23int

main()

2440 printf("

case #%d:\n

",ca);

41for(i=0;i)

4252

}53 printf("%d"

,q[iid].top().id);

54q[iid].pop();

55if(i1)printf("");

56else printf("\n"

);57}58

}59return0;

60 }

hdu 4393 優先佇列)

思路 考慮si最大只有100,所以我們可以建立優先佇列陣列s 1.100 對於每個優先佇列,按第一關鍵字fi第二關鍵字id排序,每次取出所有的優先佇列裡最大值,然後直接 計算 time 1 si fi 找最大的way,將對應的優先佇列pop並輸出對應id即可。1 include2 include3 ...

hdu 4302 優先佇列

進一步學習了優先佇列的用法 題意 乙隻小動物在直線上走,起始位置為零,之後會出現食物,動物要去距離自己最短的食物那,若兩邊的食物距離相等,則選擇之前走的方向的食物 0 x,代表x的位置出現了食物,1代表去吃乙個食物 1 include2 include3 include4 include5 usin...

hdu 2822 Dogs 優先佇列

起點到終點,x 處不用時,用時為1,求到達終點的最小時間。因為當前狀態的下乙個狀態不能確定,所以如果用普通廣搜的話,必須將整個圖遍歷一遍,但是此題的n m可能為1000 1000,必定超時。所以考慮用優先佇列。即,每次探查到的點入佇列時,不是直接放到隊尾,放在佇列中合適的位置 此元素前面的元素比它 ...