百度笔试-有大佬知道第三题和第一题咋做吗,第一题一直60%
百度笔试-有大佬知道第三题和第一题咋做吗,第一题一直60%
public class Test1 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); int[] arr=new int[2*n]; List<Integer> list=new ArrayList<>(); int num=0; for(int i=0;i<n*2;i++){ arr[i]=sc.nextInt(); if (i%2==1){ if (arr[i-1]>m){ num+=arr[i]; }else { for (int j=0;j<arr[i];j++){ list.add(arr[i-1]); } } } } Collections.sort(list); int start=0; int end=list.size()-1; while (end>=start){ int temp=list.get(end--); if(temp>=m){ num++; }else { temp+=list.get(start++); while (temp<m&&start<=end){ temp+=list.get(start++); } num++; } } System.out.println(num); } }
public class Test2 { static int sum; public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int k=sc.nextInt(); sum=procee(n,k); System.out.println(sum); } private static int procee(int n, int k) { int small=getSum(n,k); if (small==-1){ return 1; }else { int big=small+k; sum=procee(small,k)+procee(big,k); } return sum; } private static int getSum(int n, int k) { int temp=n-k; if (temp<=1){ return -1; }else { if (temp%2==0){ return temp/2; }else { return -1; } } } }第三题不会啊