360——卖粉笔问题

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);
    }
}

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 155,933评论 24 680
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 11,450评论 0 33
  • 经过十四天的练习,没画过水彩的我,从一开始的无从下笔,到现在能画出这么多东西,虽然画的不好,但我觉得很有成就感。现...
    阿列的储藏室阅读 57评论 0 0
  • 文/清净菩提 上下五千年历史灿烂辉煌 九百六十万平方公里幅员宽广 十三亿中华儿女勇敢勤劳 六十八年自强不息奔向幸福...
    清净菩提阅读 237评论 0 7
  • 你曾在我心里 筑起一座城 繁华无比 自你走后 只余 一座弃城 一片荒芜 一声叹息
    喵喵de小来福阅读 60评论 0 2