P1094 纪念品分组(贪心,排序,洛谷,java)
程序员文章站
2022-03-24 21:13:15
...
洛谷链接:https://www.luogu.com.cn/problem/P1094
题意:最多两个一组!!!!!!!!!
思路:读入之后先用sort排序,然后用两个指针一起向中间走,每次选择都尽可能的让当前状态下最大的和最小的分在一组,如果不行就最大的单独分一组,这样贪心下来就是最少分的组了。
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int w=in.nextInt();
int n=in.nextInt();
int[] a=new int[30001];
int ans=0;
for(int i=1;i<=n;i++) {
a[i]=in.nextInt();
}
Arrays.sort(a,1,n+1);
int l=1;
int r=n;
//题意最多两个放一组
while(l<=r) {
if(a[l]+a[r]<=w) {
l++;
r--;
ans++;
}else {
r--; //贪心过程,大的独自一组
ans++;
}
}
System.out.println(ans);
}
}
上一篇: 63.不同的路径II
下一篇: 什么是React