很明顯的貪心演算法, 如果能帶最小的走則帶走, 否則自己走即可
開始那道題的時候有乙個誤區, 總想著能夠要帶能帶走的最大的走, 這個其實無所謂, 因為一條船隻能坐兩個人, 只要坐上兩個人就算是值得了, 不考慮空間問題. 而如果我這樣寫就又會變成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...