CF1918B Minimize Inversions 题解
诈骗题,点破一文不值。
交换元素 \(i,j\) 时可能有以下四种情况:
情况一:\(a_i\lt a_j,b_i\lt b_j\),此时总逆序对数加 \(1\)。
情况二:\(a_i\gt a_j,b_i\lt b_j\),此时总逆序对数不变。
情况三:\(a_i\lt a_j,b_i\gt b_j\),此时总逆序对数不变。
情况四:\(a_i\gt a_j,b_i\gt b_j\),此时总逆序对数减 \(1\)。
分析上面四种情况,发现只要 \(a_i\lt a_j\) 时交换就是不劣的,那么我们只用把每个元素按照 \(a\) 从小到大来排序即可。
#include <bits/stdc++.h>
using namespace std;
struct val
{
long long a,b;
}a[300000];
long long t,n;
bool cmp(struct val a,struct val b)
{
return a.a<b.a;
}
int main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld",&n);
for(int i=1;i<=n;i++)scanf("%lld",&a[i].a);
for(int i=1;i<=n;i++)scanf("%lld",&a[i].b);
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++)printf("%lld ",a[i].a);
printf("\n");
for(int i=1;i<=n;i++)printf("%lld ",a[i].b);
printf("\n");
}
return 0;
}
CF1918B Minimize Inversions 题解的更多相关文章
- codeforce E - Binary Inversions题解
题目: 给你一个01串,现在你可以(或者不用)选取其中一个元素进行一次反转操作0-1,1-0:从而使得串中的逆序对个数最多. 题目链接:codeforce origin problem 思路: 1. ...
- HDU 6318 Swaps and Inversions(归并排序 || 树状数组)题解
题意:一个逆序对罚钱x元,现在给你交换的机会,每交换任意相邻两个数花钱y,问你最少付多少钱 思路:最近在补之前还没过的题,发现了这道多校的题.显然,交换相邻两个数逆序对必然会变化+1或者-1,那我们肯 ...
- LeetCode All in One题解汇总(持续更新中...)
突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对 ...
- POJ 3279(Fliptile)题解
以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑 ...
- HDU1789(Doing Homework again)题解
HDU1789(Doing Homework again)题解 以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定任务分数和其截止日期,每日可完成一任务,输出当罚分尽可能小时 ...
- 算法(第四版)C# 习题题解——2.5
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...
- 算法(第四版)C# 习题题解——2.2
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更为方便的版本见:http ...
- HDU 6318 - Swaps and Inversions - [离散化+树状数组求逆序数][杭电2018多校赛2]
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=6318 Problem Description Long long ago, there was an ...
- leetcode & lintcode 题解
刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度 ...
- 【agc023E】Inversions(线段树,动态规划)
[agc023E]Inversions(线段树,动态规划) 题面 AT 给定\(a_i\),求所有满足\(p_i\le a_i\)的排列\(p\)的逆序对数之和. 题解 首先如何计算排列\(p\)的个 ...
随机推荐
- ChirpStack 设备连通性测试极简工具
一.工具简介 你是否为调试 ChirpStack 设备数据连通性而烦恼?是否希望快速验证数据解析逻辑而无需复杂部署?这个 ChirpStack 数据连通性测试工具,算是一个极简解决方案! 无论是 Ch ...
- 使用Python解决氢原子问题
引言 大家好!今天我们将讨论一个非常经典的物理问题-氢原子问题,并使用 Python 来进行求解.氢原子问题是量子力学中的基础问题,它帮助我们理解原子内部的电子结构及其能量水平.通过这篇文章,大家将学 ...
- rabbitmq防止消息的重复消费
一.rabbitmq出现消息重复的场景 A:消息消费成功,事务已经提交,ack时,机器宕机,导致没有ack成功, Broker的消息重新由unack变为ready,并发送给其他消费者 B:消息消费失败 ...
- GitLab CI/CD 的配置文件 .gitlab-ci.yml 简介
〇.前言 .gitlab-ci.yml 文件主要用于项目的自动化部署配置,自动化可以大大提升团队效率,但同时这个文件的内容也比较复杂,弄清楚也并非易事,本文将对此文件的内容进行简单介绍,供参考. 另外 ...
- js--弹出对话框、改变控件内容、验证输入邮箱的合法性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 基于PySyft与TensorFlow的医疗数据协同分析系统实现教程
1. 引言:医疗数据协同分析的挑战与机遇 在医疗信息化进程中,数据孤岛问题日益突出.各医疗机构积累的海量医疗数据受限于隐私法规(如HIPAA.GDPR)无法直接共享,形成数据壁垒.联邦学习技术的出现为 ...
- 【教程】Ubuntu 16.04 配置 CLion 开发 ROS Melodic
[教程]Ubuntu 16.04 配置 CLion 开发 ROS Melodic 目录 [教程]Ubuntu 16.04 配置 CLion 开发 ROS Melodic 笔者环境 步骤 下载安装 CL ...
- 一个 Bean 就这样走完了它的一生之 Bean 的出生
生命周期流程 Spring 中的一个 Bean 从被创建到被销毁,需要经历很多个阶段的生命周期,下图是一个 Bean 从创建到销毁的生命周期流程: 在 Bean 的各个生命周期流程点,Spring 都 ...
- mysql安装配置启动
1. 安装 & 配置 & 启动 MySQL现在的版本主要分为: 5.x 版本,现在互联网企业中的主流版本,包括:头条.美图.百度.腾讯等互联网公司主流的版本. 8.x 版本,新增了一些 ...
- 如何给 GitHub Copilot "洗脑”,让 AI 精准遵循指令产出高质量代码
引子 最近在项目中使用 GitHub Copilot 的过程中,我发现了一个很有趣的现象. 当我让 Copilot 帮我写代码时,它总是热情满满地给出一大段实现.但当我仔细审视这些代码时,却经常会发现 ...