思路:贪心
一般最多最少问题有可能涉及到贪心。
因为这些数字和是>=m的,所以我们把这些数字从大到小排序。
然后每次都把最小的变成最大的数字也就是说9,这样的话改从次数最少。
代码如下。
import java.util.*;
import java.math.*;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
public class Main {
public static void main(String args[])throws IOException
{
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
in.nextToken();
int n = (int)in.nval;
in.nextToken();
int m = (int)in.nval;
long v[] = new long[n];
int sum=0,max=0;
for(int i=0;i<n;i++)
{
in.nextToken();
v[i] = (int)in.nval;
sum+=v[i];
}
Arrays.sort(v);
int p=0;
while(sum<m)
{
sum+=9-v[p];
p++;
max++;
}
out.println(max);
out.flush();
}
} 
京公网安备 11010502036488号