• Viojs 1662 最大配对


    背景

    Orz5-1 match

    描述

    给出2个序列A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出k个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。

    例如各选出了a[p[1]],a[p[2]],……,a[p[k]]与b[q[1]],b[q[2]],……,b[q[k]],其中p序列中的元素两两不相同,q序列中的元素两两不相同,那么答案为|a[p[1]]-b[q[1]]|+|a[p[2]]-b[q[2]]|+……+|a[p[k]]-b[q[k]]|,现在任务也就是最大化这个答案。

    格式

    输入格式

    输入的第1行为2个正整数n,k,表示了序列的长度和各要选出元素的个数。

    第2行包含n个正整数,描述了A序列。

    第3行包含n个正整数,描述了B序列。

    输出格式

    输出仅包括一个非负整数,为最大的结果。

    注意:答案可能超过2^31-1,请使用int64或者long long(若使用printf输出请用“%I64d”)类型储存结果。

    样例1

    样例输入1

    4 2
    2 5 6 3
    1 4 6 7
    

    样例输出1

    10
    

    限制

    对于10%的数据,有k≤5,n≤10;
    对于30%的数据,有n≤100;
    对于50%的数据,有n≤1000;
    对于100%的数据,有k≤n≤100000;a[i],b[i]≤1000000。

    时限1s。

    提示

    配对(2,7)、(6,1)结果为|2-7|+|6-1|=10。

    看来贪心只适合高智商人玩儿,,

    ╮(╯▽╰)╭,

    别哭,哭什么啊。。

    不好看了都。。

    题目你!

    说什么I64d!!!

    明明是lld!!!

    打死你!

    mmp!

    看代码吧,典型的贪心,看看就明白了。:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<cstring>
    #include<queue>
    using namespace std;
    
    int n,k;
    long long ans;
    int a[100002],b[100002];
    
    long long abss(long long x,long long y)
    {
        if(x>y) return x-y;
        else return y-x;
    }
    
    int main()
    {
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;++i)    
            scanf("%d",&a[i]);    
        for(int i=1;i<=n;++i)    
            scanf("%d",&b[i]);    
        sort(a+1,a+n+1);
        sort(b+1,b+n+1);
        int l1=1,l2=1,r1=n,r2=n;
        for(int i=1;i<=k;++i)
        {
            if(abss(a[l1],b[r2])>abss(a[r1],b[l2]))
            {
                ans+=abss(a[l1],b[r2]);
                l1++;
                r2--;
            }
            else
            {
                ans+=abss(a[r1],b[l2]);
                r1--;
                l2++;
            }
        }
        printf("%lld",ans);
        return 0;
    }

    如果你不开心,那我就把右边这个帅傻子分享给你吧,  

    你看,他这么好看,那么深情的望着你,你还伤心吗?  

    真的!这照片盯上他五秒钟就想笑了。  

    一切都会过去的。

  • 相关阅读:
    idea原项目debug模式正常启动,突然长时间卡住无法启动的解决办法
    IntelliJ IDEA下SVN的配置及使用说明
    IntelliJ IDEA打开带SVN信息的项目不显示SVN信息——解决方法
    头文件string.h,cstring与string
    跨进程边界共享内核对象
    Windows进程间通讯(IPC)----共享内存
    Windows进程间通讯(IPC)----内存映射文件
    Windows进程间通讯(IPC)----管道
    C异常处理和C++异常处理的对比
    NtQuerySystemInformation获取进程/线程状态
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/9457182.html
Copyright © 2020-2023  润新知