獨木舟 51Nod 1432 貪心

2021-08-29 08:01:36 字數 771 閱讀 9302

很明顯的貪心演算法, 如果能帶最小的走則帶走, 否則自己走即可

開始那道題的時候有乙個誤區, 總想著能夠要帶能帶走的最大的走, 這個其實無所謂, 因為一條船隻能坐兩個人, 只要坐上兩個人就算是值得了, 不考慮空間問題. 而如果我這樣寫就又會變成n^2複雜度

//獨木舟 貪心

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

#define ms(x, n) memset(x,n,sizeof(n));

typedef long long ll;

const ll maxn = 1e9+10;

int n, m;

vectorp;

bool cmp(int a, int b)

int main()

sort(p.begin(), p.end(), cmp);

while(!p.empty())

int maxw = p.front(), minw = p.back(); //每次都讓最重的人上

p.erase(p.begin());

if(maxw + minw > m)

else

}cout << sum << endl;

return 0;

}

51Nod 1432 獨木舟 (貪心

1432 獨木舟 n個人,已知每個人體重。獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?第一行包含兩個正整數n 0 一行乙個整數表示最少需要的獨木舟數。3 612 32明確思路後就會發現比較水的...

51NOD 1432 獨木舟 貪心

1432 獨木舟 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 n個人,已知每個人體重。獨木舟承重固定,每只獨木舟最多坐兩個人,可以坐乙個人或者兩個人。顯然要求總重量不超過獨木舟承重,假設每個人體重也不超過獨木舟承重,問最少需要幾隻獨木舟?input 第一行包含...

51nod1432 貪心 獨木舟

每次找最大的和最小的放。如果放不下就最大的單獨放。因為如果出現船多,只有兩種情況。很多小船,他們彼此用兩個,浪費了很大的空間。很多大船,他們彼此用兩個,而大型的船要獨佔乙個。include include include using namespace std 最大的和最小 const int ma...