360——卖粉笔问题

360——卖粉笔问题_第1张图片
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——卖粉笔问题)