Codeforces Round #324 (Div. 2) E
这题贪心,考虑先放第一个,然后从第一个数在p中的位置, 不断的往前走,和在他后面的那些数组进行交换,因为这样交换可以提高最大的效率,就是说你花费了1但是使得两个点都朝他的木匾节点减少了1
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
const int maxn=;
int A[maxn],B[maxn],idx[maxn],D[maxn];
pair<int,int>P[maxn];
int main()
{
int N;
while(scanf("%d",&N)==)
{
for(int i=; i<=N; i++)
{
scanf("%d",&B[i]);
idx[B[i]]=i;
}
for(int i=; i<=N; i++)
{
scanf("%d",&D[i]);
A[D[i]]=i;
}
int cost=,num=;
for(int i=; i<=N; i++)
{
int d=D[i];
if(d==B[i])continue;
int Loc=idx[d];
for(int i=idx[d]-; i>;i--)
{
int d1=B[i];
if( idx[d] == A[d] )break;
if(A[d1]>=Loc){
cost+=abs(idx[d1]-idx[d]);
swap(idx[d1],idx[d]);
P[num++]=make_pair(idx[d1],idx[d]);
swap(B[i],B[Loc]);
Loc=i;
}
}
}
printf("%d\n",cost);
printf("%d\n",num);
for(int i= ; i<num; i++)
printf("%d %d\n",P[i].first,P[i].second);
}
return ;
}
Codeforces Round #324 (Div. 2) E的更多相关文章
- Codeforces Round #324 (Div. 2)解题报告
		
---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...
 - Codeforces Round #324 (Div. 2) C (二分)
		
题目链接:http://codeforces.com/contest/734/problem/C 题意: 玩一个游戏,一开始升一级需要t秒时间,现在有a, b两种魔法,两种魔法分别有m1, m2种效果 ...
 - Codeforces Round #324 (Div. 2) E. Anton and Ira 贪心
		
E. Anton and Ira Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
 - Codeforces Round #324 (Div. 2) D. Dima and Lisa 哥德巴赫猜想
		
D. Dima and Lisa Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
 - Codeforces Round #324 (Div. 2) C. Marina and Vasya 贪心
		
C. Marina and Vasya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pr ...
 - Codeforces Round #324 (Div. 2) B. Kolya and Tanya 快速幂
		
B. Kolya and Tanya Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/pro ...
 - Codeforces Round #324 (Div. 2) A. Olesya and Rodion 水题
		
A. Olesya and Rodion Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/p ...
 - Codeforces Round #324 (Div. 2)   (哥德巴赫猜想)
		
题目:http://codeforces.com/problemset/problem/584/D 思路: 关于偶数的哥德巴赫猜想:任一大于2的偶数都可写成两个素数之和. 关于奇数的哥德巴赫猜想:任一 ...
 - Codeforces Round #324 (Div. 2) Dima and Lisa 哥德巴赫猜想
		
原题链接:http://codeforces.com/contest/584/problem/D 题意: 给你一个奇数,让你寻找三个以内素数,使得和为这个奇数. 题解: 这题嘛...瞎比搞搞就好,首先 ...
 - Codeforces Round #324 (Div. 2) Marina and Vasya 乱搞推理
		
原题链接:http://codeforces.com/contest/584/problem/C 题意: 定义$f(s1,s2)$为$s1,s2$不同的字母的个数.现在让你构造一个串$s3$,使得$f ...
 
随机推荐
- jmeter_用户并发登录
			
部分摘自:https://blog.csdn.net/weixin_41291554/article/details/80492276 第一种方案:对登录账号和密码进行参数化 1.添加设置线程数: N ...
 - 【PyQt5-Qt Designer】简易的数字键盘输入+简易计算器
			
参考如下键盘格式写了一个键盘输入,目前还不能进行运算,后期完善... 效果如下: 完整代码: from PyQt5.QtWidgets import (QApplication,QWidget,QPu ...
 - sharepoint webapp 部署注意点
			
只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态.还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta ...
 - 第 7 章 Data 类型
			
目录 第 7 章 Data 类型 一.创建方式 二.转时间戳 其他 第 7 章 Data 类型 @(es5) 参考了: 阮一峰javascript的标准.<javascript高级教程> ...
 - python练习题-day6
			
1.老男孩好声⾳选秀⼤赛评委在打分的时候呢, 可以进⾏输入. 假设, 老男孩有10个评委. 让10个评委进⾏打分, 要求, 分数必须⼤于5分, ⼩于10分. pingwei=["a" ...
 - 查看进程:ps
			
ps 是process status的缩写.用来查看进程 [root@linux-node- sss]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT STA ...
 - 20180322 对DataTable里面的数据进行去重
			
对DataTable里面的数据进行去重 DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt. ...
 - NYOJ 92
			
1.深搜(会爆栈,通过开全局栈模拟递归) 爆栈代码 # include<iostream> # include<string> # include<string.h> ...
 - case关联表查询
			
select a.员工编号,b.`姓名`,b.`地址`,case when a.收入 is null then '没钱' when a.收入 < 2000 then '低收入'when a.收入 ...
 - map的使用方式之一。
			
map有返回值 foreach 没得.. 得到结果 可以把里面的值以数组的方式取出来: 举例: