題意:最近,**失敗的湫湫為發洩心中鬱悶,在玩乙個消滅免子的遊戲。
遊戲規則很簡單,用箭殺死免子即可。
箭是一種消耗品,已知有m種不同型別的箭可以選擇,並且每種箭都會對兔子造成傷害,對應的傷害值分別為di(1 <= i <= m),每種箭需要一定的qq幣購買。
假設每種箭只能使用一次,每只免子也只能被射一次,請計算要消滅地圖上的所有兔子最少需要的qq幣。
貪心在能殺死某個兔子的箭裡選擇**最小的
一開始直接兩個for,tle,看了別人**之後才知道用優先佇列
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8using
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...