51nod 1191 貪心 並查集

2022-08-19 21:15:10 字數 595 閱讀 7001

首先不得不承認這題寫殘疾了,本來是優先佇列隨便搞一下就過了(確保彈出來的箭能殺死兔子),這裡貼一下當時另一種貪心思想寫的,運用了並查集,對於箭貪心,每次殺能殺死的最大的兔子之後得到解,這裡要用並查集動態維護一下x的箭殺什麼兔子,亂搞一氣也算過了。

#include #include #include #include using namespace std;

int n,m,nn;

int rib[50005];

struct aarr[50005];

int index[100005];

int f[50005];

int vis[50005];

int cc[50005];

bool operator < (a a1,a a2)

for(int i=0;i>arr[i].a>>arr[i].qb;

}sort(arr,arr+m);

sort(rib,rib+n);

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

int num=0;

int n=0;

for(int i=0;i<100005;i++){

if(num

51nod 1191 貪心 優先佇列

有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地圖上的所有兔子最少需要多少q幣。如不能殺死所有兔子,請輸出no solution。特別說明 1 當箭的傷...

51NOD 1191 消滅兔子

1191 消滅兔子 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地...

51 Nod 1191消滅兔子

1 秒131,072 kb 40 分 4 級題 有n只兔子,每只有乙個血量b i 需要用箭殺死免子。有m種不同型別的箭可以選擇,每種箭對兔子的傷害值分別為d i 為p i 1 i m 假設每種箭只能使用一次,每只免子也只能被射一次,計算要消滅地圖上的所有兔子最少需要多少q幣。如不能殺死所有兔子,請輸...