码迷,mamicode.com
首页 > 其他好文 > 详细

纪念品分组

时间:2018-07-13 21:06:54      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:show   new   clu   简单题   line   www.   mes   include   lse   

纪念品分组

难题不会做,只能来做这种简单题
当年看起来无比难的题现在竟然如此简单了
希望有一天能够看现在的难题也很简单吧.

  • 贪心
  • front 指向最前,rear 指向最后,如果 p[front]+p[rear] \(\leq\) w,则归到一组,否则 p[front] 单独一组
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN=3e4+5;
int p[MAXN];
int main()
{
    int w,n;
    scanf("%d",&w); 
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&p[i]);
    sort(p+1,p+n+1);
    int cnt=0,front=1,rear=n;
    while(front<=rear){
        if(front==rear){
            cnt++;
            break;
        }
        if(p[front]+p[rear]<=w){
            cnt++;
            front++;rear--;
        }
        else{
            cnt++;
            rear--;
        }
    }
    printf("%d",cnt);
    return 0;
}

纪念品分组

标签:show   new   clu   简单题   line   www.   mes   include   lse   

原文地址:https://www.cnblogs.com/zhinv/p/9307316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!