[编程题]最佳配对

[编程题]最佳配对

给定两个长度为N的整型数组A和B。如果Ai==Bj则认为(i,j)为最佳配对。所有的最佳配对在满足以下条件的情况下组成最佳配对集合:A和B中的各个元素最多在集合中出现一次。例如,A =「5, 10, 11,12, 14」,B = 「8, 9 ,11, 11, 5」,配对集合为「(0,4),(2,2),(2,3)」,因为在集合A中索引2出现了两次,所以上面的配对集合不是最佳配对集合。你的任务是修改B中的一个元素,使得最佳配对集合的元素最多。并输出最佳配对集合的数量。

输入描述:
输入第一行为一个数字N,表示数组A和B的长度。输入第2行和3行都是N个数字,分别表示数组A和B的元素
输出描述:
修改B中的一个元素,并打印最大的最佳配对集合数量。注意:必须修改B中的一个元素。
示例1

输入

4
1 2 3 4
1 2 3 3

输出

4

思路

  1. 使用set容器保存第一次输入的A元素
  2. 输入B元素时,与set进行查找,找到则nCount+1,未找到则nDiff+1
  3. 输出时,如果nDiff0,说明AB所有元素配对,需要改动一个B元素,则输出nCount-1,如果nDiff不为0,输出nCount+1

代码

#include<iostream>
#include<set>
using namespace std;
int main()
{
    int n, temp, nCount = 0, nDiff = 0;
    cin>> n;
    set<int> s;
    for (int i = 0; i < n; i++) {
        cin>> temp;
        s.insert(temp);
    }
    for (int i = 0; i < n; i++) {
        cin>> temp;
        if (s.find(temp) != s.end()) {
            nCount++;
            s.erase(s.find(temp));
        }
        else
            nDiff++;
    }
    if (nDiff == 0)
        cout<< --nCount;
    else
        cout<< nCount + 1;
    return 0;
}

http://www.niftyadmin.cn/n/989490.html

相关文章

微软加入开放创新网络,旨在保护Linux和开源

微软副总裁兼首席知识产权法律顾问Erich Andersen宣布&#xff0c;微软将加入开放创新网络&#xff08;OIN&#xff09;。这使得该组织从微软获得了超过60000项专利&#xff0c;有助于进一步强化其许可证网络&#xff0c;造福于开源社区。\\开放创新网络&#xff08;OIN&#x…

这半年的学习计划

每周一、五晚8:00-11:00学习计算机体系结构&#xff0c;每周三、日8:00-11:00学习操作系统。 计算机体系结构&#xff1a; Computer Organization and Design: The Hardware/Software Interface, 3ed 计算机体系结构&#xff1a;量化研究方法 3ed操作系统&#xff1a; 操作系统…

梦 有些人爱到忘了形&#xff0c;有些人落得一败涂地&#xff0c; 问世间什么最美丽&#xff0c;爱情它绝对是个奇迹。 有些人只能在梦里&#xff0c;醒来却不能提及。 有些人错过了&#xff0c;终究不能在一起&#xff01; 天堂真的有风&#xff0c;不大&#xff0c;却迷了我的…

[编程题]回文数索引

[编程题]回文数索引 给定一个仅由小写字母组成的字符串。现在请找出一个位置&#xff0c;删掉那个字母之后&#xff0c;字符串变成回文。请放心总会有一个合法的解。如果给定的字符串已经是一个回文串&#xff0c;那么输出-1。 输入描述: 第一行包含T&#xff0c;测试数据的组数…

Yii2 框架目录

框架目录结构 【目录】 backend——后台web程序 common——公共的文件 console——控制台程序 environments——环境配置 frontend——前台web程序 【文件】 .gitignore——git版本控制中忽略的文件和目录&#xff0c;如果你有一些你不想要的文件到你的源代码里面就把它添加到这…

怎么录制手机在线视频 如何录制手机屏幕

在手机中不管是看电视还是看视频&#xff0c;总能看到让我们耳目一新或者很搞笑的片段&#xff0c;遇到这样的情况一般都会怎么做呢&#xff1f;难道下次观看的时候再重新找吗&#xff1f;当然不是&#xff0c;可以通过录制的方式在手机相册中直接查看&#xff0c;而且还可以分…

快速制作边框的心得

常常需要制作一个边框&#xff0c;中间放个半透明的板子&#xff0c;用来放置文字&#xff0c;最快的方法是&#xff1a;1、画一个圆边矩形2、保存选区&#xff0c;再画收缩之或者自由变换选区&#xff0c;两者运算&#xff0c;求出边框3、填充白色或者希望的边框基本色4&#…

codeforces contest1082

C 维护前缀和 题意 每一个id给一个权值序列&#xff0c;从每个id选出数量相同的权值&#xff0c;对他们进行求和&#xff0c;使得他们的和最大 题解 注意负数对结果没有贡献&#xff0c;直接跳过。 当时写的比较挫&#xff0c;连排序都写错了&#xff01;cf的编译器比较的严谨,…