纪念品分组

Posted g0rez

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纪念品分组相关的知识,希望对你有一定的参考价值。

随便写写

import java.util.Arrays;
import java.util.Scanner;
 
public class 纪念品分组 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int w,n;
        w=scanner.nextInt();
        n=scanner.nextInt();
        int[] pi=new int[n];
        for (int i = 0; i < n ; i++) {
            pi[i]=scanner.nextInt();
        }
        Arrays.sort(pi);//按照价格排序
        int p=0,q=n-1,count=0;
        while(p<q){
            //如果p指向的纪念品价值+q指向的纪念品<=w纪念品价格之和的上限 分为一组 装完 pq移动
            if(pi[p]+pi[q]<=w){
                count++;
                p++;
                q--;
            }
            //如果p指向的纪念品价值+q指向的纪念品>w的话 对q进行单独分组 q指向当前大的那个纪念品的价值 q往前移动
            else{
                count++;
                q--;
            }
        }
        if(p==q) count++;  //说明还未分完组 还有纪念品未进行分组 单独对该纪念品分为一组
        System.out.print(count);
    }
}
 

以上是关于纪念品分组的主要内容,如果未能解决你的问题,请参考以下文章

纪念品分组

luogu tyvj 纪念品分组

纪念品分组

NOIP200702纪念品分组

noip普及组2007 纪念品分组

2007纪念品分组