纪念品分组
随便写写
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); } }
本文来自博客园,作者:guoyuxin3,转载请注明原文链接:https://www.cnblogs.com/guoyuxin3/p/15059392.html

浙公网安备 33010602011771号