为荣誉而拼搏少年 2024-04-21 21:18 采纳率: 50%
浏览 2
已结题

1583. 【2024年中山市东区】凉茶(medic)

  1. 【2024年中山市东区】凉茶(medic)
    (Standard IO)
    时间限制: 1 s 空间限制: 256 MB

题目描述
由于 Jimmy 和 Chen 的XX得分太差,可怜的两人被罚去喝他们最不喜欢的凉茶了……
桌上摆了 N 种不同的凉茶,Jimmy 和 Chen 需要各自选择一种凉茶来喝。对于 Jimmy 来说,喝下第 i 种凉茶会让他获得 Ai的不高兴值,而对于 Chen 来说,第 i 种凉茶会让他获得 Bi的不高兴值。如果两个人喝下了不同的凉茶,那么他们总共的不高兴值为各自获得的不高兴值的较大值;而如果两个人喝下了同一种凉茶,则由于他们会互相共情并倒苦水,他们总共的不高兴值为各自获得的不高兴值之和。
Jimmy 当然想两个人都开心一点,也就是两人总共的不高兴值越小越好。请你告诉他,两人总共的不高兴值最小是多少。

输入
第一行一个正整数 N,表示凉茶的种数。
第二行 N 个正整数,A1,A2,⋯,AN,代表 Jimmy 喝下每种凉茶获得的不高兴值。
第三行 N 个正整数,B1,B2,⋯,BN,代表 Chen 喝下每种凉茶获得的不高兴值。

输出
一行一个正整数,表示两人总共的不高兴值的最小值。

样例数据
输入 #1
3
8 4 7
5 4 9
输出 #1
5
输入 #2
3
11 3 6
7 2 7
输出 #2
3

数据范围限制
对于 100% 的数据,满足 1≤N≤2000,1≤Ai,Bi≤10^5。

提示
【样例 1 解释】

当 Jimmy 选择第二种凉茶、Chen 选择第一种凉茶时,他们各自获得 4 和 5 的不高兴值。此时两人总共的不高兴值为 4 和 5 中的较大值 5,也是各种方案中的最小值。

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-21 21:18
    关注

    引自免费微信小程序:皆我百晓生

    为了找到 Jimmy 和 Chen 总共的不高兴值最小值,我们需要遍历所有可能的选择组合,并计算每种组合下的总不高兴值。我们可以将 Jimmy 和 Chen 的不高兴值分别存储在两个数组 AB 中。然后,我们可以通过两层循环来比较所有可能的组合:外层循环用于 Jimmy 的选择,内层循环用于 Chen 的选择。我们将两种情况的总不高兴值进行比较,取其中较小的一个作为当前的最小总不高兴值。最后返回这个最小值。

    以下是 C++ 代码实现:

    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main() {
        int N;
        cin >> N;
    
        vector<int> A(N), B(N);
        for (int i = 0; i < N; ++i) {
            cin >> A[i];
        }
        for (int i = 0; i < N; ++i) {
            cin >> B[i];
        }
    
        int minTotalUnhappiness = INT_MAX; // 初始化最小总不高兴值为最大负整数,确保可以覆盖所有正整数
        for (int j = 0; j < N; ++j) { // Jimmy 的选择
            for (int k = 0; k < N; ++k) { // Chen 的选择
                int unhappiness1 = A[j]; // Jimmy 的不高兴值
                int unhappiness2 = B[k]; // Chen 的不高兴值
                if (j != k) { // 如果他们选择不同
                    unhappiness1 = max(unhappiness1, unhappiness2); // 取较大值
                } else { // 如果他们选择相同
                    unhappiness1 += unhappiness2; // 相加
                }
                minTotalUnhappiness = min(minTotalUnhappiness, unhappiness1); // 更新最小总不高兴值
            }
        }
    
        cout << minTotalUnhappiness << endl;
        return 0;
    }
    

    这段代码首先读入凉茶的种类数量 N 和两人的不高兴值数组。接着通过两层循环遍历所有可能的组合,并根据题目要求计算总不高兴值。最后更新最小总不高兴值并在程序结束时输出。注意这里使用了 INT_MAX 初始化最小总不高兴值,以确保它能覆盖所有正整数值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 已采纳回答 4月25日
  • 修改了问题 4月21日
  • 创建了问题 4月21日

悬赏问题

  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 哪个tomcat中startup一直一闪而过 找不出问题
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成