例题实战 1
package tanxin;import java.util.*;public class tanxin {public static void main(String args[]) {Scanner scan=new Scanner(System.in);List <Integer> list=new ArrayList<>();//list集合存储部落人数int n=scan.nextInt();for(int i=0;i<n;i++) {int a=scan.nextInt();list.add(a);}Collections.sort(list);long sum=0;//花费while(list.size()>1) {int a=list.get(0);int b=list.get(1);sum+=a+b;list.remove(0);list.remove(0);//当我们移除第一个部落时,第二个部落的下标也变成了0list.add(a+b);//新部落的人数加到list集合中Collections.sort(list);//再次进行排序}System.out.print(sum);} }
例题实战 2
package lanqiao;import java.util.*;public class tanxin {public static void main(String[] args) {// TODO Auto-generated method stubScanner scan=new Scanner(System.in);int n=scan.nextInt();int arr[]=new int [n];for(int i=0;i<n;i++) {arr[i]=scan.nextInt();}int q=scan.nextInt();int []d=new int[n];while(q-->0) {int l=scan.nextInt()-1;int r=scan.nextInt()-1;d[l]+=1;if(r+1<n) {d[r+1]-=1;}}for(int i=1;i<n;i++) {d[i]+=d[i-1];}long ans=0;for(int i=0;i<n;i++) {ans+=(long)arr[i]*d[i];}Arrays.sort(arr);Arrays.sort(d);long res=0;for(int i=0;i<n;i++) {res+=(long)arr[i]*d[i];}System.out.println(res-ans);}}