洛谷1007

  1. 题意:

    敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,
    你的部队必须撤下独木桥。独木桥的长度为LL,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为11,但一个士兵某一时刻来到了坐标为00或L+1L+1的位置,他就离开了独木桥。

    每个士兵都有一个初始面对的方向,他们会以匀速朝着这个方向行走,
    中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法彼此通过对方,
    于是就分别转身,继续行走。转身不需要任何的时间。

    由于先前的愤怒,你已不能控制你的士兵。甚至,你连每个士兵初始面对的方向都不知道。
    因此,你想要知道你的部队最少需要多少时间就可能全部撤离独木桥。
    另外,总部也在安排阻拦敌人的进攻,因此你还需要知道你的部队最多需要多少时间才能全部撤离独木桥。

  2. 解题思路:

    那么当两个士兵撞在一起时,从从平行视角看他们都掉头,但从高空俯视,会发现他们“穿过”了对方。换言之,这与他们相互穿过并没有任何区别。

    然这样就可以把士兵分开。比方说有一个士兵在位置3,开始时向右,那么一定有一个士兵在两秒后在位置5。虽然可能不是同一个人,但由于士兵都是相同的,我们可以认为他们相同。

    首先,我们把他们一个个读进去。然后,对于每一个士兵,他有向左和向右两种选择。设士兵在位置p,如果向左,需要p时间单位;向右,需要L-p+1个。分别取max和min,将其存储在max和min数组中。
    最小值:既min数组中的最大值
    最大值:既max数组中的最大值

    临界条件:当桥上没有士兵时,最大最小时间都为0

  3. 代码
     1 #include<iostream>
     2 #include<stdio.h>
     3 #define Max 10000
     4 using namespace std;
     5 int main()
     6 {
     7     int L;
     8     int n;
     9     int soilder[Max];
    10     cin >> L;
    11     cin >> n;
    12     if (!n)  //桥上没人时
    13     {
    14         cout << "0 0";
    15         return 0;
    16     }
    17     int located;
    18     for (int i = 0; i < n; i++)
    19     {
    20         cin >> located;
    21         soilder[i] = located;
    22     }
    23     int max[Max];
    24     int min[Max];
    25     for (int i = 0; i < n; i++)
    26     {
    27         if (soilder[i] < (L - soilder[i] + 1))
    28         {
    29             max[i] = L - soilder[i] + 1;
    30             min[i] = soilder[i];
    31         }
    32         else
    33         {
    34             min[i] = L - soilder[i] + 1;
    35             max[i] = soilder[i];
    36         }
    37     }
    38     int min_t=-1;
    39     int max_t=-1;
    40     for (int i = 0; i < n; i++)
    41     {
    42         if (min_t < min[i])
    43             min_t = min[i];
    44     }
    45     for (int i = 0; i < n; i++)
    46     {
    47         if (max_t < max[i])
    48             max_t = max[i];
    49     }
    50     cout << min_t <<' '<< max_t;
    51     return 0;
    52 }

     

        

posted @ 2020-12-15 11:03  Quella'  阅读(101)  评论(0)    收藏  举报
Live2D