zoukankan      html  css  js  c++  java
  • ECNU 2143 端午节快乐

    ECNU 2143 端午节快乐

    链接

    https://acm.ecnu.edu.cn/problem/2143

    题目

    单点时限: 2.0 sec

    内存限制: 256 MB

    今天是端午节,ECNU 决定请大家吃粽子。恰好,今天超市为了迎合 ” 端午节 “,推出了 ” 端午大酬宾 “,即促销活动。严格的买三送一,买五送二。

    ECNU 想用现有的钱,买最多的粽子,但是他自己又不会算,所以希望你能帮帮他。

    输入格式
    输入第一行为一个数 , 表示测试数据的组数。

    每组测试数据有两个整数, 表示 ECNU 有 元钱,每个粽子价格为 元钱,超市推出了买 5 个送 2 个,和买 3 个送 1 个的活动。

    输出格式
    输出 ECNU 最多能买到的粽子数量。

    样例
    input
    2
    10 3
    22 3
    output
    4
    9
    提示
    有两组测试数据:
    对于第一组测试数据:有10元钱,粽子3元一个,可以买3个,但是买3送1,所以最后有4个。
    对于第二组测试数据:有22元钱,粽子3元一个,可以买7个,但是买5送2,所以最后有9个。

    思路

    可以说是贪心算法,优先想凑最高优惠,不行再用次级优惠,
    这里直接用一个f函数,套一下就行了。

    代码

      public static int f(int a, int b, int num) {
        if (a >= 5 * b) {
          return f(a - 5 * b, b, num + 7);
        } else if (a >= 3 * b) {
          return f(a - 3 * b, b, num + 4);
        } else {
          return num + a / b;
        }
      }
    
      public static void fun() {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
          int a = sc.nextInt();
          int b = sc.nextInt();
          System.out.println(f(a, b, 0));
        }
      }
    
  • 相关阅读:
    1st_pandas
    8thNumpy a.copy()
    7thNumpy array合并
    6th_numpy array的合并 np.vstack np.concatenate np.newaxis
    numpy_5th array索引
    numpy_4th np.transpose(a); a.T ; a.clip(min,max) ; np.sort(a) ; np.diff() ; np.cumsum(a)
    numpy_3rd 布尔运算/乘积点积
    POJ 3270
    POJ 1721
    POJ 3128
  • 原文地址:https://www.cnblogs.com/blogxjc/p/14358713.html
Copyright © 2011-2022 走看看