51Nod 1432 獨木舟 貪心算法

思路:

做了一些貪心的題目,總結出來,對於問題的定義是至關重要的。 該問題是使得最少的船將全部人載走,等價定義是每一個船載的人儘可能的多,也就是使每個船儘可能有兩個人配對成功。那麼進行一下排序,最大與最小組合就好了。

#include <bits/stdc++.h>
using namespace std;
vector<int> vec;
int main()
{
    int n,m;
    int num;
    cin>>n>>m;
    for ( int i=0; i<n; i++ )
        scanf("%d",&num),vec.push_back( num ) ;
    int ans = 0;
    sort( vec.begin(),vec.end() );
    int l=0,r=vec.size()-1;
    while ( l<=r ) {
            ++ans;
        if ( vec[r]+vec[l]<=m ) {
            r--;
            l++;
        } else {
            r--;
        }
    }
    cout<<ans<<endl;
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章