E、CSL 的魔法 【模拟】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551#question
题目描述
输入描述:
- 第一行有一个整数 n,表示序列的长度。
- 接下来两行,每行有 n 个整数,分别表示初始序列 a 和 b。
1≤ai,bi≤1091≤ai,bi≤109
输出描述:
- 在一行输出一个整数,表示最少使用的魔法次数。
解题思路:
注意一个bug点即可:
给出的a b 序列的数不一定相同。
所以对于 两个序列都要进行排序,然后map映射一下原序列每个数对应的位置,每个数的排名。
然后以其中一个序列为参考,扫一遍,最大的匹配另一个序列里最小的,不能匹配则交换序列里两个数的位置。
AC code:
- #include <bits/stdc++.h>
- #define INF 0x3f3f3f3f
- #define LL long long
- #define inc(i, j, k) for(int i = j; i <= k; i++)
- #define rep(i, j, k) for(int i = j; i < k; i++)
- #define mem(i, j) memset(i, j, sizeof(i))
- #define gcd(i, j) __gcd(i, j)
- using namespace std;
- const int MAXN = 2e5+;
- map<int, int>ida, idb, xa, xb;
- int a[MAXN], b[MAXN], tpa[MAXN], tpb[MAXN];
- bool cmp(int a, int b)
- {
- return a > b;
- }
- int N;
- int main()
- {
- scanf("%d", &N);
- inc(i, , N){ scanf("%d", &a[i]); tpa[i] = a[i]; xa[a[i]] = i;}
- inc(i, , N){ scanf("%d", &b[i]); tpb[i] = b[i]; xb[b[i]] = i;}
- sort(tpa+, tpa++N);
- inc(i, , N) ida[tpa[i]] = i;
- sort(tpb+, tpb++N, cmp);
- inc(i, , N) idb[tpb[i]] = i;
- int ans = ;
- inc(i, , N)
- {
- if(ida[a[i]] != idb[b[i]]){
- ans++;
- int nxtb = tpb[ida[a[i]]];
- int nxt = xb[nxtb];
- xb[b[i]] = nxt;
- xb[b[nxt]] = i;
- swap(b[i], b[nxt]);
- }
- }
- printf("%d\n", ans);
- return ;
- }
E、CSL 的魔法 【模拟】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)的更多相关文章
- H、CSL 的拼图 【多维点的交换】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551/H 题目描述 众所周知 CSL 不仅玩魔方很强,打麻将也很强.今天他打魔法麻将的时候,在路上撞到了一个被打乱 ...
- D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...
- C、CSL 的密码 【set暴力 || 后缀数组】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛 )
题目传送门:https://ac.nowcoder.com/acm/contest/551/C 题目描述 众所周知,CSL 最喜欢的密码是 ******.于是有一天…… 为了改变这一点,他决定 ...
- G、CSL 的训练计划【BFS 贪心】(“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551/G 链接:https://ac.nowcoder.com/acm/contest/551/G来源:牛客网 题 ...
- F、CSL 的神奇序列 【规律】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551/F 题目描述 CSL 有一个神奇的无穷实数序列,他的每一项满足如下关系: 对于任意的正整数 n ,有 n∑k ...
- “新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛(D题,贪心+栈)
链接:https://ac.nowcoder.com/acm/contest/551/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言10485 ...
- HDU 5933 ArcSoft's Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))
ArcSoft's Office Rearrangement Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)
异或密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Des ...
- HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))
扫雷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
随机推荐
- Visual studio 2017 c++ wcout 无法输出中文
wcout.imbue(locale(locale(), "", LC_CTYPE));
- nodejs搭建简易的rpc服务
这里主要使用的是jayson包,使用jayson实现rpc server端十分简单,如下: var jayson = require('jayson') // create a server var ...
- 七、spark核心数据集RDD
简介 spark RDD操作具体参考官网:http://spark.apache.org/docs/latest/rdd-programming-guide.html#overview RDD全称叫做 ...
- 【SSH网上商城项目实战10】商品类基本模块的搭建
转自:https://blog.csdn.net/eson_15/article/details/51354932 前面我们完成了与商品类别相关的业务逻辑,接下来我们开始做具体商品部分. 1. 数据库 ...
- Hunger Snake 2
- C#学习笔记-继承基本知识
namespace Inheritance { class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.A ...
- JavaWeb学习总结(十一):Session解决form表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- js图片跟随鼠标移动
<div id="wrapper"><img src="http://images.cnblogs.com/cnblogs_com/rain-null/ ...
- vue2.0路由写法
// 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter) // 1. 定义(路由)组件. // 可以从其他文件 import 进来 var Fo ...
- C# 读取excel用户列表过滤一个月内未收到外部邮件已离职的员工
1.通过aspose.cells读取excel中的数据并添加到list中 //存储从excel中读取出来的数据 List<UserInfo> lst_userinfo = new List ...