c_cpp 具有给定总和的对

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 具有给定总和的对相关的知识,希望对你有一定的参考价值。

#include <bits/stdc++.h>
using namespace std;

map<pair<int,int>,bool> sum(vector<int> a,vector<int> b,int x){
    map<pair<int,int>,bool>m;
    for (int i=0; i<a.size(); i++){
        for (int j=0; j<b.size(); j++){
            if (a[i]+b[j] == x){
                pair<int,int>p = {a[i],b[j]};
                m[p] = true;
            }
        }
    }
    return m;
}

int main() {
    int t;
    cin>>t;
    while(t--){
        int n,m,x;
        cin>>n>>m>>x;
        vector<int> a(n);
        vector<int> b(m);
        for (int i=0; i<n; i++){
            cin>>a[i];
        }
        for (int i=0; i<m; i++){
            cin>>b[i];
        }
        int c = 0;
        map<pair<int,int>,bool>p = sum (a,b,x);
        for (auto i = p.begin(); i != p.end(); i++){
            if (c>0){
            cout<<", ";
        }
            cout<<(i->first).first<<" "<<(i->first).second;
            c++;
        }
        if (c == 0){
            cout<<-1;
        }
        cout<<endl;
    }
	return 0;
}

以上是关于c_cpp 具有给定总和的对的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 给定二叉树和总和,确定树是否具有根到叶路径,以便沿路径添加所有值等于gi

c_cpp 给定二叉树和求和,找到所有根到叶路径,其中每个路径的总和等于给定的总和

c_cpp 给定数组的所有旋转中ixarr [i]的最大总和

c_cpp 检查是否存在具有奇数加权总和的循环

c_cpp 给定二叉树,找到最大路径总和。路径可以在树中的任何节点处开始和结束。

c_cpp 最大子阵列总和。在具有最大总和的数组(包含至少一个数字)中查找连续的子数组。