(纪中)1875. 晾衣绳【数学】

(File IO): input:laundry.in output:laundry.out
时间限制: 3000 ms 空间限制: 128001 KB 具体限制
Goto ProblemSet


题目描述
奶牛们用 N 1 < = N < = 1000 N(1<=N<=1000) 根绳子架起了晾衣绳,以便晒它们刚洗完的衣服。用它们不能弯曲的拇指,奶牛们彻底搞砸了这项工作。试想一下四根绳子是这样排列的:
绳子交叉了!这个,当然是无法接受的。
奶牛们想把晾衣绳整理好。它们迟钝的头脑只能处理"交换两根绳"的问题。然而奶牛们的手臂(牛的……也叫手臂)很短,受此限制,它们只能交换相邻两根绳子的端点(在上面或者是下边的固定器上)。以上面的图为例,需要做四次这样的交换才能使绳子变成想下面这样:
帮助奶牛们整理晾衣绳吧。请你找出最小的交换次数,使得这些晾衣绳能够排列整齐。
你将得到有关晾衣绳位置的描述,用整数来表示当前晾衣绳的顺序。这些晾衣绳被标上了 1.. N 1..N 的数字。现在可以告诉你的是,这些晾衣绳在上面和下面各 N N 个连接插槽上的出现顺序。


输入
1 1 行:一个整数N
2.. N + 1 2..N+1 行:每一行有两个隔开的整数(均在 1.. N 1..N 范围内)。第一个整数表示在上插槽上连接的绳子的 I D ID ,第二个整数表示在下插槽上连接的绳子的 I D ID 。第二行的两个整数就分别表示了 1 1 号上插槽和1号下插槽上连接的绳子;第三行则分别描述了 2 2 号上插槽和下插槽上连接的绳子……以此类推。

输出
1 1 行:一个整数,指出可以把晾衣绳全都弄直的最小交换次数


样例输入
4

4 1

2 3

1 4

3 2

样例输出
4


数据范围限制
1<=N<=1000


提示
样例说明:
3 3 号绳上面的端点和它左边的交换,再和左边的交换一次。 4 4 号绳也做同样的工作。


解题思路
初始:
在这里插入图片描述
我们要让 a [ 1 ] = b [ 1 ] a[1]=b[1] ,所以让 a [ 1 ] a[1] 与所有在他右边的交换。。
在这里插入图片描述
我们要让 a [ 2 ] = b [ 2 ] a[2]=b[2] ,所以让 a [ 2 ] a[2] 与所有在他右边的交换。。
在这里插入图片描述
我们要让 a [ 3 ] = b [ 3 ] a[3]=b[3] ,所以让 a [ 3 ] a[3] 与在他右边的交换。。
在这里插入图片描述
!!!!!搞定


代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,a[1010],b[1010],ans;
int main()
{
    freopen("laundry.in","r",stdin);
    freopen("laundry.out","w",stdout);
    cin>>n;
    for(int i=1; i<=n; i++)
        scanf("%d%d",&a[i],&b[i]);
    for(int i=1; i<=n; i++) {
        if(a[i]!=b[i])
        {
            for(int j=i; j<=n; j++)
            {
                if(a[j]==b[i]) {
                    int t=a[i];
                    for(int k=j; k>i; k--) {
                        a[k]=a[k-1];
                        ans++;
                    }
                    a[i]=t;
                    break;
                }
            }
        }
        int t=1;
        for(int j=1; j<=n; j++)
        {
        	if(a[j]!=b[j]) {
                t=0;
                break;
            }
		}
        if(t==1)
            break;
    }
    cout<<ans<<endl;
}
发布了73 篇原创文章 · 获赞 5 · 访问量 1810

猜你喜欢

转载自blog.csdn.net/kejin2019/article/details/104314111
今日推荐