Codeforces 584E - Anton and Ira - [贪心]
题目链接:https://codeforces.com/contest/584/problem/E
题意:
给两个 $1 \sim n$ 的排列 $p,s$,交换 $p_i,p_j$ 两个元素需要花费 $|i-j|$,要求你用最少的钱交换 $p$ 中的元素使得其变成 $s$。
题解:
思路很简单,给个例子如下:
$p$:$5,1,2,3,4,6$
$s$:$3,4,1,6,2,5$
我们不难发现,像:
$p$:$5,1,\underline{2},\underline{3},4,6$
$s$:$\underline{3},4,1,6,\underline{2},5$
或者
$p$:$5,1,\underline{2},3,\underline{4},6$
$s$:$3,\underline{4},1,6,\underline{2},5$
这样的情况,交换两个数字必定是不会亏的,而且是必须要花费的,所以每次都直接暴力枚举找符合的 $(i,j)$,一旦遇到就立刻把它俩交换即可。
当然不能太过暴力地 $O(n^2)$ 去找 $(i,j)$,需要一点剪枝和区间控制。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;
#define mk(x,y) make_pair(x,y)
#define fi first
#define se second
const int maxn=2e3+;
int n;
int s[maxn],t[maxn];
int pos[maxn]; P Find()
{
int x,y;
for(int i=;i<=n;i++)
{
x=pos[s[i]];
if(i<x)
{
for(int j=i+;j<=x;j++)
{
y=pos[s[j]];
if(y<=i) return mk(i,j);
}
}
}
} int main()
{
ios::sync_with_stdio();
cin.tie(), cout.tie(); cin>>n;
for(int i=;i<=n;i++) cin>>s[i];
for(int i=;i<=n;i++) cin>>t[i], pos[t[i]]=i; int diff=;
for(int i=;i<=n;i++) diff+=(s[i]!=t[i]); vector<P> op;
int cost=;
while(diff)
{
P r=Find();
swap(s[r.fi],s[r.se]);
//printf("%d <-> %d\n",r.fi,r.se);
op.push_back(r);
cost+=abs(r.fi-r.se);
diff-=(s[r.fi]==t[r.fi]);
diff-=(s[r.se]==t[r.se]);
} cout<<cost<<'\n';
cout<<op.size()<<'\n';
for(auto x:op) cout<<x.fi<<" "<<x.se<<'\n';
}
Codeforces 584E - Anton and Ira - [贪心]的更多相关文章
- Codeforces 584E Anton and Ira
Anton and Ira 我们把点分为三类, 向左走的, 向右走的, 不动的. 最完美的情况就是每个点没有走反方向. 每次我们挑选最右边的向右走的去把向左走的交换过来,这样能保证最优. #inclu ...
- codeforces 584E Anton and Ira [想法题]
题意简述: 给定一个$1$到$n(n<=2000)$的初始排列以及最终排列 我们每次可以选取位置为$i$和$j$的 并交换它们的位置 花费为$ |i-j| $ 求从初始状态变换到末状态所需最小花 ...
- 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 Gym 100338E Numbers (贪心,实现)
题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ...
- [Codeforces 1214A]Optimal Currency Exchange(贪心)
[Codeforces 1214A]Optimal Currency Exchange(贪心) 题面 题面较长,略 分析 这个A题稍微有点思维难度,比赛的时候被孙了一下 贪心的思路是,我们换面值越小的 ...
- 【25.00%】【codeforces 584E】Anton and Ira
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Codeforces Round #329 (Div. 2)B. Anton and Lines 贪心
B. Anton and Lines The teacher gave Anton a large geometry homework, but he didn't do it (as usual ...
- Codeforces 734E. Anton and Tree 搜索
E. Anton and Tree time limit per test: 3 seconds memory limit per test :256 megabytes input:standard ...
- codeforces 349B Color the Fence 贪心,思维
1.codeforces 349B Color the Fence 2.链接:http://codeforces.com/problemset/problem/349/B 3.总结: 刷栅栏.1 ...
随机推荐
- isPrototypeOf 与 instanceof区别
1.代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...
- 【Vegas原创】Excel中,日期和时间用&连接后格式不正确的解决方法
=TEXT(B2+C2,"yyyy-mm-dd hh:mm:ss")
- WebViewJavascriptBridge 进行js 与native通信。
1, iOS端加载web页面.开启日志并给webView建立JS与OC的桥梁 - (void)viewWillAppear:(BOOL)animated { if (_bridge) { retur ...
- Android中的指纹识别
转载请注明出处:http://blog.csdn.net/wl9739/article/details/52444671 评论中非常多朋友反映,依据我给出的方案,拿不到指纹信息这个问题,在这里统一说明 ...
- Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
- 两台linux服务器各有两个不同的用户 其中一个服务器可以无密码登录服务器
服务器A:普通用户USERA 服务器B:普通用户USERB 把USERA的公钥写入服务器B用户USERB的authorized_keys中 USERA能普能用户登录然后服务器A,然后再登录服务器B: ...
- Mysql数据按天分区,定期删除
需求: 1.日志表需要按天分区 2.只保留一个月数据 方案: 1.创建两个事件,一个事件生成未来需要的分区,另一个事件定期检查过期数据(移除分区) 2.创建事件每小时执行一次,删除事件每天执行一次 3 ...
- Spring配置动态数据源-读写分离和多数据源
在现在互联网系统中,随着用户量的增长,单数据源通常无法满足系统的负载要求.因此为了解决用户量增长带来的压力,在数据库层面会采用读写分离技术和数据库拆分等技术.读写分离就是就是一个Master数据库,多 ...
- [JVM] IDEA集成VisualVM
VisualVM是集成命令行JDK工具和轻量级分析功能的可视化工具. 参考: https://blog.csdn.net/qq_22741461/article/details/80451675 ht ...
- featureCounts 软件说明
featuresCounts 软件用于定量,不仅可以支持gene的定量,也支持exon, gene bodies, genomic bins, chromsomal locations的定量: 官网 ...