猜数 题解

猜数

https://ac.nowcoder.com/acm/contest/5389/B

思路:贪心
一般最多最少问题有可能涉及到贪心。
因为这些数字和是>=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();
    }
}


全部评论

相关推荐

点赞 评论 收藏
分享
秋招之BrianGriffin:你再跟他说华为工资也低(相对互联网)就可以享受私信爆炸了😋
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务