zoukankan      html  css  js  c++  java
  • JZOJ__Day 1:【NOIP普及模拟】JABUKE

    题目描述

        Mirko 最近发现了一个古老的游戏。这个游戏的屏幕有N列在屏幕的底部,有个占M(M<N)列的船。在玩这个游戏的

    过程中,我们可以左右移动这条船,但是这条船必须时刻完整的在屏幕里面。这条开始的时候是在最左边的。有一些苹果从

    这个屏幕的顶部掉下来,每个苹果会从屏幕N列中的某一列的顶部掉下来,垂直下落直到到达屏幕的底部。当前一个苹果掉落在

    底部以后,后一个苹果开始下落。一个苹果被船接到是这么定义的:这条船占有这个苹果掉下来的那一列。我们的目标是接到所

    有的苹果,在这种情况下,我们要求在所有苹果的掉落过程中,尽量减少船的移动距离。

    输入


    第一行包括两个整数NM1<=M<N<=10),第二行输入一个整数J,表示苹果的总个数,接下来的J行,每行一个整数,表示相应的苹果掉落在第几列。


    输出

    输出只有一个整数,代表在所有苹果下落的过程中,我们需要最少的移动船的总距离。

    样例输入

    5 1
    3
    1
    5
    3
    

    样例输出

    6
    

    数据范围限制

    提示

    输入:


    5 2


    3


    1


    5


    3


    输出:


    4



    分析

    三种情况:

    第一种:船能接住苹果,不用移动。

    第二种:苹果在船的左边,只需把船最左边的坐标变成苹果落下来的那一列,再把船最右边的坐标处理一下。

    第三种:苹果在船的右边,只需把船最右边的坐标变成苹果落下来的那一列,再把船最左边的坐标处理一下。



    程序:

            

    var
    n,m,j,w,a,b,i,tj:longint;
    begin
        readln(n,m);
        readln(j);
        a:=1;b:=m;tj:=0;
        for i:=1 to j do
        begin
            readln(w);
            if w<a then
            begin
                tj:=tj+(a-w);
                b:=b-(a-w);
                a:=w;
            end else
            if w>b then
            begin
                tj:=tj+(w-b);
                a:=a+(w-b);
                b:=w;
            end;
        end;
        write(tj);
    end.

  • 相关阅读:
    日期格式
    典型的三行两列居中高度自适应div+css布局
    转javascript倒计时例子
    javascript encode64 decode64
    【转】Linux下 zip 和 unzip的用法
    【转】matlab reshape使用
    【转】MySQL修改root密码的各种方法整理
    【转】汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp
    [转]ExtJS xtype class对照表
    vc 字符串转时间,并取时间差
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500097.html
Copyright © 2011-2022 走看看