首页 > 其他分享 >CF1765J Hero to Zero 题解

CF1765J Hero to Zero 题解

时间:2022-12-23 22:34:20浏览次数:36  
标签:Hero int 题解 scanf 一行 Zero 一列 using

题意

给出长为 \(n\) 数组 \(a,b\),令 \(c_{i,j}=|a_i-b_j|\)。

每次可以花 \(1\) 的代价让矩阵 \(c\) 的一行或一列或一个格子减 \(1\),也可以花 \(-1\) 的代价让一行或一列加 \(1\)。

求让矩阵清零的最小代价。

题解

后面加 \(1\) 的操作显然没什么用。

每次减一行或一列都能减 \(n\),一个格子只能减 \(1\)。所以需要最大化减一行或一列的次数。

设减了 \(p_i\) 次第 \(i\) 行,\(q_i\) 次第 \(j\) 列。

需要在满足限制 \(p_i+q_j\le c_{i,j}\) 的情况下最大化 \(\sum p_i+\sum q_j\)。

发现把限制乘个 \(-1\) 就变成和 KM 算法顶标一样的限制了。所以求的就是最小权完美匹配。

排个序对位匹配即可。随便算一算。

代码:

#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int main(){
	int n;
	scanf("%d",&n);
	vector<int> a(n),b(n);
	for(int&x:a) scanf("%d",&x);
	for(int&x:b) scanf("%d",&x);
	sort(a.begin(),a.end());
	sort(b.begin(),b.end());
	ll ans=0;
	for(int i=0;i<n;i++)
		ans+=1ll*n*(a[i]+b[i])-
		2ll*a[i]*(b.end()-lower_bound(b.begin(),b.end(),a[i]))-
		2ll*b[i]*(a.end()-upper_bound(a.begin(),a.end(),b[i]));
	for(int i=0;i<n;i++) ans-=(n-1ll)*abs(a[i]-b[i]);
	printf("%lld\n",ans);
	return 0;
}

标签:Hero,int,题解,scanf,一行,Zero,一列,using
From: https://www.cnblogs.com/shrshrshr/p/17001755.html

相关文章

  • # Win10为知笔记Docker镜像部署 -v /wiz/storage问题解决
    Win10为知笔记Docker镜像部署-v/wiz/storage问题解决用了很长一段时间的为知笔记,客户端体验还行,服务端笔记同步体验不佳。准备用Docker自己搭一个服务端。环境:操作......
  • 前端竞态问题解决方法
    主要是通过 AbortController来终止前一个请求。例如:useEffect(()=>{//创建controllerconstcontroller=newAbortController();//将controller作......
  • uniapp配合xcode打包遇到videoPlayer module is not added的问题解决
     这个情况是因为没有配置相关插件,虽然在uniapp中提示添加但是这对于我们自己xcode打包毫无意义,这儿配置的很多东西都是给uniapp云端打包提示添加对应功能的xcode本地打......
  • CF1537D 题解
    前言题目传送门!更好的阅读体验?遇到这种博弈论的题目,当然是要打表找规律了!思路首先,很容易想到暴力递推。代码在上方的链接里。然后看几眼就能发现,在大部分情况下,如果......
  • Codeforces 1630 E Expected Components 题解 (组合数学)
    题目链接首先明确概念:排列。指的就是一个把数组a重排得到的序列,两个排列相等当且仅当它们对应位全都相等环形排列。指的是把数组a重排得到的序列首尾相接得到的环形数......
  • CF1753B 题解
    \(\mathcalPreface\)题目传送门\(\mathcalSolution\)定理:\(n!\cdot(n+1)=(n+1)!\)这题就是围绕以上定理展开的。如果加入一个数\(a_i\)满足\(\operatornam......
  • Python从入门到精通(第2版)——pyuic5: error: no such option: -m的问题解决
    前言在学习《Python从入门到精通(第2版)》的第15章GUI界面编程——15.2.4将.ui文件转换为.py文件时,按照书中步骤出错时的问题解决,希望对同样学习本书的同学有所帮助。问......
  • [省选联考 2021 B 卷] 数对 题解
    题目描述给定\(n\)个正整数\(a_i\),请你求出有多少个数对\((i,j)\)满足\(1\lei\len\),\(1\lej\len\),\(i\nej\)且\(a_i\)是\(a_j\)的倍数。提示对于......
  • chrome使用拖拽本地扩展时无法安装的问题解决办法
    在使用Chrome拖拽安装本地扩展时会提示无法安装,可以采用以下两个方法解决1、修改.crx文件文件格式为zip,并进行解压,然后打开扩展安装界面的开发者模式,使用加载已解压的扩展......
  • Codeforces 1654 G Snowy Mountain 题解 (重心分治)
    题目链接假设现在起点已经确定,我们观察从这个起点开始能走的最长路径长什么样。把这条最长路径中所有的非平地路径拿出来,它们肯定连成一线,因为不允许上坡;而一条路径重复走......