博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cf-Round542-Div2-B(贪心)
阅读量:6284 次
发布时间:2019-06-22

本文共 744 字,大约阅读时间需要 2 分钟。

题目链接:http://codeforces.com/contest/1130/problem/B

思路:

贪心题。定义结构体数组a,a[i].x[0],a[i].x[1]分别表示i出现的第一个下标和第二个下标。从i到i+1过程中,只有两种可能,即Sasha选择a[i+1].x[0]或Sasha选择a[i+1].x[1],仔细想一下,模拟一下,会发现选择其中需要步数最小的即可。详见代码:

1 #include
2 using namespace std; 3 4 struct node{ 5 int x[2],k; 6 }a[100005]; 7 8 int n,p1,p2,tmp; 9 long long res;10 11 int main(){12 scanf("%d",&n);13 for(int i=1;i<=n;++i)14 a[i].k=0;15 for(int i=1;i<=2*n;++i){16 scanf("%d",&tmp);17 a[tmp].x[a[tmp].k++]=i; 18 }19 p1=p2=1;20 for(int i=1;i<=n;++i){21 int tmp1=abs(a[i].x[0]-p1)+abs(a[i].x[1]-p2),tmp2=abs(a[i].x[0]-p2)+abs(a[i].x[1]-p1);22 if(tmp1

 

转载于:https://www.cnblogs.com/FrankChen831X/p/10432109.html

你可能感兴趣的文章
【364】SVM 通过 sklearn 可视化实现
查看>>
python sys.exit()函数说明
查看>>
从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序...
查看>>
高并发的处理方案
查看>>
Android深度探索第一章节的总结
查看>>
valgrind检查still reachable情况
查看>>
matlab练习程序(灰度图直方图均衡化)
查看>>
得到RTP包中的timestamp
查看>>
rowid去重(转)
查看>>
恋爱侧面观
查看>>
Ubuntu14.04运行lsdslam与问题解决
查看>>
python字典常见操作
查看>>
POJ1201Intervals(差分约束系统)
查看>>
jquery源码
查看>>
python机器学习入门(Day6:Decision tree)
查看>>
杭电 2899 题解题报告
查看>>
php 多条件查询
查看>>
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
查看>>
mysql 对返回的值是null进行判断和重新赋值
查看>>
【以前的空间】link cut tree
查看>>