捡石头

news/2024/11/30 5:42:12/

题目描述

地上有2N个石头,排成了一条线,相邻的石头距离为1,石头之间有着不同的大小,有N种大小不同 的石头,即相同大小的石头有2个,现将石头按照从小到大的顺序依次编号为1到N,有2个石头共享 相同的编号,现在小武和小林要同时从最左边的石头出发,按照石头大小依次捡起编号为1到N的石 头,并且相同编号的石头同一个人只能捡起来一次,现在他们想把地上的石头都捡完,求两个人的行 走的最短距离和为多少?

输入格式

第一行一个正整数N 第二行2N个数,按照石头从左到右的顺序依次给出石头的编号

输出格式

一行一个数表示行走的最短距离和

输入输出样例
输入 #1
3
1 1 2 2 3 3
输出 #1
9
输入 #2
4
2 2 3 4 4 1 1 3
输出 #2
33
输入 #3
3
1 3 1 2 3 2
输出 #3
11
说明/提示
数据范围

对于16%的数据,N<=10
对于36%的数据,N<=1000
对于60%的数据,N<=10000
对于100%的数据,N<=100000

样例解释

对于样例1
第一个人捡第1,3,5的石头,大小分别为1,2,3,行走距离为4
第二个人捡第2,4,6的石头,大小分别为1,2,3,行走距离为5
总距离为9


解题思路

在这里插入图片描述
可以发现每两个点之间的行走可能只有两种

  • (偏左起点 -> 偏左终点 + 偏右起点 -> 偏右终点)
  • (偏左起点 -> 偏右终点 + 偏右起点 -> 偏左终点)

所以只需要将两种情况中短的情况加入答案就好啦


Code

#include <iostream>
#include <cstdio>
#include <cmath>using namespace std;int n, x;
long long a[100100][2], ans, xx, yy;int main(){scanf ("%d", &n);for (int i = 1; i <= n * 2; i++){scanf ("%d", &x);if (a[x][0])a[x][1] = i;else a[x][0] = i;}ans = a[1][0] + a[1][1] - 2;//到石头1的距离是唯一的,而且因为从第一块石头出发路程少1,两个石头1路程少2for (int i = 2; i <= n; i++){xx = abs (a[i][0] - a[i - 1][0]) + abs (a[i][1] - a[i - 1][1]);//两种可能yy = abs (a[i][0] - a[i - 1][1]) + abs (a[i][1] - a[i - 1][0]);ans += min (xx, yy);}printf ("%lld", ans);
} 

http://www.ppmy.cn/news/455227.html

相关文章

捡来的

1.现在女人真伟大。不知不觉肚子大、有了孩子没有爸&#xff01; 2.小时候我们把玩具当朋友、长大了朋友拿我们当玩具。 3.你不能让所有的人满意&#xff0c;因为不一定所有的都是人。 4.人生就象卫生纸、没事尽量少扯、&#xff01; 5.有老公怎么的&#xff1f; 有守门员球还进…

捡苹果(背包+贪心)

http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=4811 Description 以前,有个神秘的院子里面有三种苹果,每个苹果的数量是无限的。有一个小姑娘带了一个大袋子来到院子,她从来没见过这么多的苹果。每种苹果都有大小以及出售的价格,小姑娘想获得最大的利润,但是她…

捡苹果问题

Description 以前&#xff0c;有个神秘的院子里面有三种苹果&#xff0c;每个苹果的数量是无限的。有一个小姑娘带了一个大袋子来到院子&#xff0c;她从来没见过这么多的苹果。每种苹果都有大小以及出售的价格&#xff0c;小姑娘想获得最大的利润&#xff0c;但是她不知道怎么…

捡苹果 (贪心 + 完全背包)

题目链接 思路&#xff1a; 由于这个题目背包容量太大了&#xff0c;先不说会超时的问题&#xff0c;连dp数组都开不出来&#xff0c;所以我们要想办法减少背包容量&#xff0c;由此我们可以想到贪心。  我们先按照密度最大到小对三个苹果进行排序&#xff0c;然后分出两个空…

怎么就不是本人捡到的呢

不过萨嗒姆船长很显明比秦剑设想中要沉得住气&#xff0c;就餐的氛围是愉悦的&#xff0c;秦剑和一帮爷们胡乱聊着天&#xff0c;一直到最后&#xff0c;船长大人都貌似无害地不讯问秦剑任何事情。 不外秦剑晓得&#xff0c;这位看起来面目和气的船长将自己的狰狞给暗藏了起来罢…

遍地是钱,为什么捡不到?

中国快速发展的这些年来&#xff0c;几乎每一代的年轻人&#xff0c;都会说&#xff0c;上一代人拥有最好的机会&#xff0c;他们抓住了时代的红利&#xff0c;而自己则只能承受重压&#xff0c;那么现在流行新名词&#xff0c;内卷。 当然&#xff0c;快速发展的时代确实有红利…

Python:多分支选择

Python语句结构 1、和其它编程语言一样,按照语句执行流程划分,Python程序也可分为3大结构:顺序结构、选择(分支)结构和循环结构 ⑴顺序结构:就是让程序按照从上到下的顺序依次执行每一行代码,不重复执行任何代码,也不跳过任何代码 ⑵选择结构:也称分支结构,就…

说精神力量的词,愿力很神奇

说精神力量的词&#xff0c;愿力最神奇&#xff01; ​愿力&#xff0c;心力&#xff0c;精神&#xff0c;精 气 神&#xff0c;气 &#xff0c;能量 【能量】是个外来词 趣讲大白话&#xff1a;200天了&#xff0c;布道的愿力推动我 【趣讲信息科技200期】 ******************…