HDU 4864 Task(2014多校 貪心)

2021-06-22 21:42:18 字數 812 閱讀 6965

task

比賽當時思路想的差不多,感覺能過的,該處理的也都處理到了,最後還是沒過,可能是二分寫錯了吧-。-

大意:給你n個機器,m個要完成的任務,每個機器跟任務都有兩個屬性,機器是最大工作時間跟等級,任務是需要工作的時間跟等級。完成乙個任務可以得到500*(工作時間)+2*(等級)的報酬。完成任務的條件是機器的工作時間滿足任務的需要,等級要大於等於任務的等級,乙個機器只能用一次,乙個任務也只能用乙個機器去完成。需要進行策略選擇,使得完成更多的任務。

思路:開始想的就是貪心,也想到了貪心的時候時間是主導因素,要優先考慮,賽後寫的時候是看的標程用的map來實現的。

struct node

a[100010], b[100010];

int cmp(node a, node b)

mapm;

int n, m;

int main()

for(int i = 0; i < m; ++i)

sort(a, a+n, cmp);

sort(b, b+m, cmp);

m.clear();

int j = 0;

int ans1 = 0;

long long ans2 = 0;

for(int i = 0; i < m; ++i)

map::iterator it = m.lower_bound(b[i].lev);

if(it != m.end())}}

printf("%d %i64d\n", ans1, ans2);

}return 0;

}

hdu 4864 Task 貪心 技巧

題目鏈結 一道很有技巧的貪心題目。題意 有n個機器,m個任務。每個機器至多能完成乙個任務。對於每個機器,有乙個最大執行時間xi和等級yi,對於每個任務,也有乙個執行時間xj和等級yj。只有當xi xj且yi yj的時候,機器i才能完成任務j,並獲得 500 xj 2 yj金錢。問最多能完成幾個任務,...

hdu 4864 Task 貪心 二分 set

題意 有n臺機器,m個任務,每台機器有xi,yi,每個任務也有xj,yj,當乙個任務可以被處理的條件是,xj xi 且 yj 貪心的話,如果是遍歷任務的話,那麼我們希望盡可能做時間和level更高的任務,我們可以先按時間排,時間相同按level,遞增排,機器也是按這個排。然後從最大價值的任務開始遍歷...

杭電ACM 4864,Task(貪心)

題意 有n個機器和m個任務,每個機器每天都有乙個最大工作時長x1,以及最大工作難度y1,每個任務都有乙個工作時間x2,工作難度y2。每完成乙個任務多有乙個收益500 x2 2 y2。假設每個機器一天只能完成乙個任務,乙個任務只能又乙個機器完成,不可由多個一起完成。求一天當中能完成的最多工,並輸出收益...