美文网首页
360——卖粉笔问题

360——卖粉笔问题

作者: 远o_O | 来源:发表于2017-08-27 14:26 被阅读23次
    4BECF5CC4C220FDC4B02091BA45D90E7.png
    • 当时看到这道题的时候,就在想,怎样计算各个种类的粉笔需要卖多少,总觉得很复杂,并且没有一点思路,总之一脸蒙蔽,没有做出来。
    • 后来一想其实也挺简单的,只是笔试的时候,缺少一定的指导思想:DP不过就是从暴力搜索演化而来的,一开始想不到DP,就先尝试暴力搜索。

    暴力搜索:

    • 从混搭盒数为0开始,逐个增加,一个个的尝试,暴力尝试完成后,我们也就找到了最大利益值。
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int n = scanner.nextInt();//cai
            int m = scanner.nextInt();//bai
    
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            int c = scanner.nextInt();
            int d = scanner.nextInt();
    
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            int z = scanner.nextInt();
            scanner.close();
    
    
            /**
             * 暴力破解,从混搭盒数为0开始,逐个累加尝试即可:
             *      1、要想获得的钱越多,当然要尽量将粉笔卖完。即去掉混搭用掉的粉笔,剩下的彩色和白色粉笔当然
             *          要“全部彩色”、“全部白色”的卖完。
             */
            int i = 0;//混搭盒数
            int res = 0;//最大利润
            while (i * a <= n && i * b <= m){
                int temp = 0;
                temp += i * x;
                temp += (n - i * a) / d * z;//全部彩色
                temp += (m - i * b) / c * y;//全部白色
                if (temp > res){
                    res = temp;
                }
                i++;
            }
            System.out.println(res);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:360——卖粉笔问题

          本文链接:https://www.haomeiwen.com/subject/gebbdxtx.html