1683 车厢重组 codevs

http://codevs.cn/problem/1683/

时间限制: 1 s

空间限制: 1000 KB

题目等级 : 白银 Silver

题目描述 Description

在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。

输入描述 Input Description

输入文件有两行数据,第一行是车厢总数N(不大于10000),第二行是N个不同的数表示初始的车厢顺序。

输出描述 Output Description

一个数据,是最少的旋转次数。

样例输入 Sample Input

4

4 3 2 1

样例输出 Sample Output

6

冒泡

 1 #include <algorithm>
 2 #include <iostream>
 3 #include <cstdio>
 4
 5 using namespace std;
 6
 7 int n,ans;
 8 int train[10005];
 9
10 int main()
11 {
12     scanf("%d",&n);
13     for(int i=1;i<=n;i++)
14         scanf("%d",&train[i]);
15     for(int i=1;i<=n;i++)
16         for(int j=i+1;j<=n;j++)
17             if(train[i]>train[j])
18             {
19                 swap(train[i],train[j]);
20                 ans++;
21             }
22     printf("%d",ans);
23     return 0;
24 }
时间: 2024-10-12 08:14:59

1683 车厢重组 codevs的相关文章

1683 车厢重组

个人博客:doubleq.win 1683 车厢重组 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序.于是他就负责用这座桥将进站的车厢按车厢号从小到大排列.他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,

codevs 1683 车厢重组(水题日常)

时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 题目描述 Description 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序.于是他就负责用这座桥将进站的车厢按车厢号从小到大排列.他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序. 输入描

车厢重组

[问题描述] 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序.于是他就负责用这座桥将进站的车厢按车厢号从小到大排列.他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序. [输入文件] 输入文件有两行数据,第一行是车厢总数N(不大于10000),第二行是N个不同的数表示初始的车厢

P1116 车厢重组

题目描述 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序.于是他就负责用这座桥将进站的车厢按车厢号从小到大排列.他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序. 输入输出格式 输入格式: 输入文件有两行数据,第一行是车厢总数N(不大于10000),第二行是N个不同的数表示初

栈例题-火车车厢重组

一组火车车厢编号1-n 从右向左经过车站 每节车厢可以临时进站(栈),放过主线上的几节车厢后再重新上路跟上. 输入车厢数和希望得到的车厢顺序,判断是否可能. CCF教材下册P149,例6.9 代码如下: 1 #include <iostream> 2 #include <string> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 struct Stack 7 { 8 i

分治算法小总结 x

分治算法的基本思想是将一个规模为 N 的问题分解为 K 个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解. ——以上来自百度百科. * 分治法解题的一般步骤:1 分解,将要解决的问题划分成若干规模较小的同类问题:- 二分法:区间对半分开2 求解,当子问题划分得足够小时,用较简单的方法解决:- 边界情况:可以直接操作3 合并,按原问题的要求,将子问题的解逐层合并构成原问题的解.- 合并操作:根据不同的题目来确定 其实这个题用冒泡排序做的,但用归并排序也能

排序算法练习(二)

分治算法_求逆序对 AYYZOJ p1434 [问题描述] 给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目. [输入格式] 第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数. [输出格式] 所有逆序对总数. [输入样例] 4 3 2 3 2 [输出样例] 3 [数据范围] N<=10^5,Ai<=10^5. 思路:与归并排序联系起来. 分析:     归并排序是将序列a[1,H]分成两部分——a[1,mid

暑假集训(1)第五弹 -----Rails(Uva514)

PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只能建立起一条路面铁轨.而且,这导致这个火车站在同一个时刻只能一个轨道投入使用,因为它缺少空间,两列火车将无路可走.具体看下图.   当地的惯例是每一列火车从A方向驶向B方向时候,会用某种方式将车厢重组.假设火车将要到达A方向,拥有N个车厢(N<=1000),这些车厢按照递增顺序标记为1到N.负责从组车厢的领导,必须知道是否能从组车厢让它驶出B,而这个重组的序列就是a1\a2\

UVA514 Rails

 铁轨 PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只能建立起一条路面铁轨.而且,这导致这个火车站在同一个时刻只能一个轨道投入使用,因为它缺少空间,两列火车将无路可走.具体看下图. 当地的惯例是每一列火车从A方向驶向B方向时候,会用某种方式将车厢重组.假设火车将要到达A方向,拥有N个车厢(N<=1000),这些车厢按照递增顺序标记为1到N.负责从组车厢的领导,必须知道是否能从组车厢让它驶出B,而这个重组的序列就是a1\a