C. Double Sort

题目大意:

两个数组,a,b 可以选择两个下标 i , j 必须同时令 a , b 里面 的下标为  i , j 的数同时交换,问是否能将两个数组都变成非递减的序列,若可以,输出最小的操作步数,和每次交换的下标,若不能就输出 -1.

思路分析:

可以用冒泡排序或者是 sort 直接把他俩其中的一个序列排序成非递减的序列,然后如果这么排序之后另一个序列如果不是非递减的,就输出 -1 ,然后按照排完序的非递减序列倒推出交换顺序。

AC 代码:

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int t,n,s;
struct Node{int x,y;int dex=0;
};
Node a[N];
bool cmp(Node &x,Node &y){if(x.x==y.x){return x.y<y.y;}return x.x<y.x;
}
void print(){cout<<"\t";for(int i=1;i<=n;i++){cout<<a[i].x<<" ";}cout<<endl<<"\t";for(int i=1;i<=n;i++){cout<<a[i].y<<" ";}cout<<endl<<"\t";for(int i=1;i<=n;i++){cout<<a[i].dex<<" ";}cout<<endl;
}
void solve(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i].x;a[i].dex=i;}for(int i=1;i<=n;i++){cin>>a[i].y;}sort(a+1,a+1+n,cmp);for(int i=2;i<=n;i++){if((a[i].x<a[i-1].x)||(a[i].y<a[i-1].y)){cout<<"-1"<<endl;return;}}
//  print();int cnt=0;Node k[105];for(int i=1;i<=n;i++){if(a[i].dex==i){//没动continue;}else{for(int j=i+1;j<=n;j++){if(a[j].dex==i){k[++cnt]={a[i].dex,a[j].dex};//swap(a[i],a[j]);break;}}}}cout<<cnt<<endl;for(int i=1;i<=cnt;i++){cout<<k[i].x<<" "<<k[i].y<<endl;}return ;
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){solve();}return 0;
}

最菜的我打卡的第二天相关推荐

  1. 《NLP直播课打卡》第二天:千言文本相似度比赛全流程

    打卡内容说明 基于NLP直播课实践内容略改训练过程,简化训练的使用 使用paddlenlp进行预训练模型网络开发 内含数据读取与处理方法(未清洗样本数据) 内含数据分布的简要展示 网络搭建与训练 预测 ...

  2. 《左耳听风》-ARTS-打卡记录-第二十五周

    <左耳听风>-ARTS-打卡记录-第25周 坚持不懈是一句正确的废话.前段时间,我在我的读者群中发起了一个名为 ARTS 的活动.每人每周写一个 ARTS:Algorithm 是一道算法题 ...

  3. C Primer Plus 学习打卡之第二章(含课后编程答案)

    知识概要 本章主要介绍了C程序的主要构成,学习了printf()函数,教了我们怎么编写一个简单的程序.本章所要求的简程序需要头文件,main()函数,自定义函数,以及声明变量.注释.printf()函 ...

  4. 力扣算法学习计划打卡:第二天

    977有序数组的平方,排序算法复习,189轮转数组 https://leetcode-cn.com/study-plan/algorithms/?progress=lv45wk7 有序数组的平方 排序 ...

  5. 英语学习打卡(第二天)

    PART1 1.grind A. to make something into small pieces or a powder by pressing between hard surfaces: ...

  6. ARTS打卡计划第二周-Share-使用java注解对方法计时

    现在有这样一种常见,系统中有一个接口,该接口执行的方法忽快忽慢,因此你需要去统计改方法的执行时间.刚开始你的代码可能如下: long start = System.currentTimeMillis( ...

  7. 西瓜书+南瓜书---打卡(第二次)

    感觉这个过程中有很多定义自己都没听懂,比如说广义瑞利商.就最后一节里面的二分类线性判别分析这个算法感觉很少见? 在这个过程中有讲到优化和信息论的内容,包括KL散度,信息熵,交叉熵都是那里面的内容. 自 ...

  8. “打卡上班”第二周,我这样......

    (原谅我是个标题党) 上周把那个网页写完之后,信心满满得开启今天的学习,然而,学的又是我不会滴JS难受. 1.程序的结构:顺序结构(最平常的那种,感觉也是自己接触得最多得那种) 循环结构(if--el ...

  9. 整站优化部分关键词排名卡在第二页上不去的原因

    无法注册/点击无反应/登录提示密码错误/浏览器不支持 建议请使用搜狗浏览器注册登录使用,当无法注册/点击无反应/登录提示密码错误,请清楚浏览器缓存和cookie.如用chrome或360极速模式也可以 ...

最新文章

  1. postman自动打开_postman第1讲-开篇:介绍与安装
  2. 【Laravel】连接sqlite,Database [] not configured,sqlite example
  3. 响应式微服务 in java 译 十五 Microservices in OpenShift
  4. nowcoder 202F-平衡二叉树
  5. c语言输入十个英文国名,c语言程式设计 在主函式输入10个字元,用子函式求出共输入几个英文字元,几个数字字元,几个符号%...
  6. js中构造函数与普通函数的区别
  7. android实现应用商店开发,基于Android平台的应用商店客户端的设计与实现
  8. 电商产品经理必修课之学员招募及在线课程学习
  9. 什么是像素格式(色彩采样、色度抽样)RGB 4:4:4、(Limit)RGB 4:4:4、Ycbcr 4:4:4、Ycbcr 4:2:2、Ycbcr 4:2:0又是什么?
  10. 【Paper】法律科技方面论文汇总
  11. 思维正好,何不踏歌之“丑数”
  12. 入门OSPF就这一篇足够了
  13. 【Unity3D插件】DoTween插件的简单介绍及示例代码
  14. 据说,年薪百万的程序员,都是这么开悟的---笑一笑十年少
  15. 凯撒密码C语言去掉空格字符,凯撒密码C语言实现
  16. 实验任务(三)---密码破解技术
  17. 西班牙语学习、关系代词que的用法
  18. Daimayuan Online Judge 蒟蒻
  19. Android 扬声器与听筒的切换
  20. OSX修复GPT分区表过程

热门文章

  1. AlexNet网络介绍
  2. 生活细语:送给每一个热爱生活的人[ 收集整理,超强!!!]
  3. python读取svg文件_使用python创建SVG
  4. 印象笔记Markdown样式美化 - window版
  5. Hadoop HA集群配置问题记录
  6. OPENCV study
  7. Linux中国对话龙蜥社区4位理事:龙蜥操作系统捐赠的背后,是谁在推动?
  8. 高德地图导航功能审核被拒
  9. LaTeX:overleaf latex 中文生僻字处理
  10. scrapy爬取唯品会运动鞋信息并进行简单的数据处理和分析