hdu 4544 優先佇列 貪心

2022-06-02 14:27:08 字數 1238 閱讀 1299

題意:最近,**失敗的湫湫為發洩心中鬱悶,在玩乙個消滅免子的遊戲。

遊戲規則很簡單,用箭殺死免子即可。

箭是一種消耗品,已知有m種不同型別的箭可以選擇,並且每種箭都會對兔子造成傷害,對應的傷害值分別為di(1 <= i <= m),每種箭需要一定的qq幣購買。

假設每種箭只能使用一次,每只免子也只能被射一次,請計算要消滅地圖上的所有兔子最少需要的qq幣。

貪心在能殺死某個兔子的箭裡選擇**最小的

一開始直接兩個for,tle,看了別人**之後才知道用優先佇列

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

using

namespace

std;

9#define mod 1000000007

10const

int inf=0x3f3f3f3f;11

const

double eps=1e-5;12

#define cl(a) memset(a,0,sizeof(a))

13#define ts printf("*****\n");

14const

int maxn=100005;15

intb[maxn],d[maxn],p[maxn];

16int

n,m,tt;

17struct

node

18a[maxn];

21bool

cmp1(node a,node b)

2225

struct

cmp26

31};

32 priority_queue,cmp >q;

33bool

vis[maxn];

34int

main()

3558

if(q.empty())

5963 ans+=q.top();

64q.pop();65}

66if(!f) printf("

no\n");

67else printf("

%i64d\n

",ans);68}

69 }

HDU 4544 消滅兔子

問題描述 湫湫 越減越肥!最近,失敗的湫湫為發洩心中鬱悶,在玩乙個消滅免子的遊戲。遊戲規則很簡單,用箭殺死免子即可。箭是一種消耗品,已知有m種不同型別的箭可以選擇,並且每種箭都會對兔子造成傷害,對應的傷害值分別為di 1 i m 每種箭需要一定的qq幣購買。假設每種箭只能使用一次,每只免子也只能被射...

hdu 4544 消滅兔子

遊戲規則很簡單,用箭殺死免子即可。箭是一種消耗品,已知有m種不同型別的箭可以選擇,並且每種箭都會對兔子造成傷害,對應的傷害值分別為di 1 i m 每種箭需要一定的qq幣購買。假設每種箭只能使用一次,每只免子也只能被射一次,請計算要消滅地圖上的所有兔子最少需要的qq幣。input輸入資料有多組,每組...

HDU4544 湫湫系列故事 消滅兔子

hdu 4544 tags 資料結構,貪心 analysis 將兔子的血量從大到小排序,將箭的殺傷力從大到小排序,對於每乙個兔子血量,將比他大的殺傷力大的劍壓入優先佇列,優先佇列自己重寫,讓它每次丟擲的數為價錢最小。code include include include include using...