首页 > 其他分享 >迟钝的舞会 题解

迟钝的舞会 题解

时间:2024-08-06 16:17:34浏览次数:13  
标签:舞会 min 题解 LL 迟钝 long max 身高 define

题目id:1329

题目描述

牛是公认的笨拙的舞者。然后,约翰发现富有音乐细胞的母牛能产更多的奶。因此,他把他的整圈的牛都拉进了舞蹈培训班,包括所有的公牛(因为跳舞的时候得一男一女-_-)。这些牛正好有\(n\)头是公的,有\(n\)头是母的。 在第一堂课开始之前,舞蹈老师想将他们分成一对一对的(当然,是男的和女的分在一对)。两头牛的身高差越小,他们在跳舞的时候就会配合得越好。给出所有牛的身高,问如何将他们配对,使得所有牛的身高差的和最小。

解题思路

这题很简单,氵题一道,\(2\)分钟切了。
一眼贪心题,假设两组牛身高分别为\(a_n\)和\(b_n\),那么

  • \(a_{min}\)肯定和\(b_{min}\)配对
  • \(a_{max}\)肯定和\(b_{max}\)配对

根据这两点,我们只要把\(a\)数组和\(b\)数组从小到大排序,最终答案就是\(\sum\limits_{i=1}^{n}{\lvert a_i-b_i \rvert}\)。

AC Code

#include<bits/stdc++.h>
#define N 1000007
#define INF 1e18
#define MOD 998244353
#define LL long long
#define pb push_back
#define lb long double
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define IOS ios::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr)
using namespace std;
LL n,a[N],b[N],ans;
int main()
{
    IOS;
    cin>>n;
    for(LL i=1;i<=n;++i)
        cin>>a[i];
    for(LL i=1;i<=n;++i)
        cin>>b[i];
    sort(a+1,a+n+1);
    sort(b+1,b+n+1);
    for(LL i=1;i<=n;++i)
        ans+=abs(b[i]-a[i]);
    cout<<ans;
    return 0;
}

标签:舞会,min,题解,LL,迟钝,long,max,身高,define
From: https://www.cnblogs.com/988176-/p/18345393

相关文章

  • 08-04 题解
    08-03题解A根据题目的提示,发现所有数的积是不变的(\(gcd(a,b)*lcm(a,b)=a*b\)),所以差大和大简易证明设\(g=gcd(a,b)\),则\(a=a'g,\)\(b=b'g\),\(lcm(a,b)=a'b'g\)\(gcd(a,b)+lcm(a,b)=g(1+a'b')\)\(a+b=g(a'......
  • ARC152C 题解
    blog。可能是很简单的,但是我实在是不会这种神秘题/ll/ll。Conclusion1.记\(d=a_n-a_1\),则极差始终等于\(d\)。证明显然。Conclusion2.操作极值时,最小值始终变化为\(d\),并且可以进行无限次这样的变化。证明显然。题意转变:最小化\((\texttt{最小值}\bmodd)\),且最小......
  • AISING2020E 题解
    blog。没题解就来写一篇捏。显然\(L_i>R_i\)的人都想去左边(记为LFT人),\(L_i<R_i\)的人都想去右边(记为RHT人),\(L_i=R_i\)的人可以摆烂。(LFT人与RHT人互相干扰,很难刻画。于是找性质。)存在最优方案,使得所有LFT人都在RHT人的左边。证明:如果有RHT人在LFT人的左边,......
  • pbootcms网站后台关闭验证码后, 无法登录问题解决方法
    最近闲来无事,在后台将pbootcms的登录验证码关闭了(全局配置-配置参数-安全配置-后台验证码)结果问题来了,第二天登录后台一直提示验证码不能为空。 这不是自己给自己找事吗!现在想输入验证码,也没有地方输入。 从程序上解决吧 apps\admin\controller\IndexController.ph......
  • 【题解】Solution Set - 新高一矩阵选讲「陶治霖」
    新高一矩阵选讲「陶治霖」https://www.becoder.com.cn/contest/5348「CF1970E3」Trails(Hard)考虑DP。定义\(f_{i,j}\)表示,第\(i\)天走到\(j\)的方案数。有转移:\[f_{i,j}=\sum_{k=1}^mf_{i-1,k}\times(s_jl_k+s_kl_j+s_js_k)\]https://www.luogu.com.cn/article/i......
  • CF568E Longest Increasing Subsequence 题解
    Description给定一个长度为\(n\)的有\(k\)个空缺的序列。你有\(m\)个数可以用于填补空缺。要求最大化最长上升子序列的长度。\(n,m\le10^5\),\(k\le10^3\)。Solution容易发现只需要先构造出LIS上的位置的值,对于其余未填位置随便填,所以构造LIS时就不需要考虑出......
  • 题解 P6873 [COCI2013-2014#6] FONT
    link题意给你\(N\)个单词,问最多能组成多少个包含所有小写英文字母的句子。\(\mathrm{Solution}\)\(N\le25\)显然搜索。枚举当前选还是不选,搜到头判断是否成功即可。\(\mathrm{Code}\)#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;consti......
  • [COCI2015-2016#3] NEKAMELEONI 题解
    前言题目链接:LOJ;洛谷。题意简述在二叉树上,不断删除叶子,你要维护其树链剖分后重儿子编号和。如果两个孩子大小相同,在一开始连向左儿子,或者保持修改前的连接。\(n\leq2\times10^5\)。题目分析有分块的、有二分的,那我来讲一讲我的想法——树剖维护树剖。首先反转操作,不断......
  • Codeforces Round 963 (Div. 2) A - C 详细题解(思路加代码,C++,Python) -- 来自灰名
    比赛链接:Dashboard-CodeforcesRound963(Div.2)-Codeforces之后有实力了再试试后面的题目,现在要做那些题,起码要理解一个多小时题目A:链接:Problem-A-Codeforces题目大意理解:        极少数不考翻译能读懂的cf题目(bushi)每个测试用例第一行一个n,......