首页 > 试题广场 >

讨厌鬼进货

[编程题]讨厌鬼进货
  • 热度指数:4032 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}讨厌鬼需要采购 n 种货物,每种货物可通过以下方式获取:
\hspace{23pt}\bullet\, 在供应商 Aa_i 元购得第 i 种;
\hspace{23pt}\bullet\, 在供应商 Bb_i 元购得第 i 种;
\hspace{23pt}\bullet\, 在网购平台一次性购买全部 n 种,花费 x 元(不能拆分)。

\hspace{15pt}可以自由组合以上方式,只要最终每种货物都至少购买一件。求最小总花费。

输入描述:
\hspace{15pt}第一行输入两个整数 n,x\left(1\leqq n\leqq 10^5;\ 1\leqq x\leqq 10^9\right)
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n\left(1\leqq a_i\leqq 10^4\right)
\hspace{15pt}第三行输入 n 个整数 b_1,b_2,\dots,b_n\left(1\leqq b_i\leqq 10^4\right)


输出描述:
\hspace{15pt}输出一个整数,表示完成采购的最少花费。
示例1

输入

5 5
2 1 2 1 2
1 2 1 2 3

输出

5

说明

\hspace{15pt}直接选择网购 5 元即可完成。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        long x = in.nextLong();  // 网购总价用long

        long minSum = 0;  // 存储每种商品的最小单价总和

        // 读取A供应商价格并立即与B供应商价格比较
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }

        for (int i = 0; i < n; i++) {
            int b = in.nextInt();
            minSum += Math.min(a[i], b);  // 累加每种商品的最低价格
        }

        // 比较两种方案的价格
        System.out.println(Math.min(minSum, x));
    }
}

发表于 2025-09-03 13:47:06 回复(0)
import java.util.*; 
import java.io.*;
// 每种货物都购买最便宜的
//题目有点小问题,预算不够时输出最小预算即可
public class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        String[] line1=bf.readLine().split(" ");
        int n=Integer.parseInt(line1[0]);
        int x=Integer.parseInt(line1[1]);
        int[] as=Arrays.stream(bf.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        int[] bs=Arrays.stream(bf.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();

        int sum=0;//采购最小花费

        for(int i=0;i<n;i++){
            sum+=Math.min(as[i],bs[i]);
        }

        System.out.println(sum<x?sum:x);


    }
}

发表于 2025-09-02 10:16:51 回复(0)