正式通过的第二道笔试题!加油。
import java.util.Scanner; import java.util.Arrays; // 导入Arrays工具类 // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); int k = in.nextInt(); long[] s=new long[n]; long mod = (long)1e9 + 7; for(int i=0;i<n;i++){ s[i]=in.nextLong(); } Arrays.sort(s); int q=0; long sum=0; while(q<k&&n-q-2>=0){ s[n-1-q-1]=(s[n-1-q-1]*s[n-1-q])%mod; s[n-1-q]=1; sum=(s[n-1-q-1]+1+q)%mod; // System.out.println(sum); q++; } for(int j=n-2-k;j>=0;j--){ sum=(sum+s[j])%mod; } System.out.print(sum); } }
小美的游戏
小美有一个长度为 n 的数组,她最多可以进行 k 次操作,每次操作如下:
她希望最多进行 k 次操作之后,最后数组中的元素的总和尽可能大。