洛谷P1007题解

前往题目的传送门:
这是一道有趣的思维题。
 
你想象一下,你坐在直升机上,拿着RPG(火箭筒),看着底下一群傻瓜乱哄哄地跑。然而你发现一个有趣的现象:两个人怼到一起之后各自转身继续跑,相当于都没转身啊!可以理解为他们两个代替对方继续跑。因为所有士兵都是一样的,你可以两个士兵在点3相遇,那么下一秒肯定是一个在4一个在2。所以可以理解为他们的行动路线都是直线,而没有转弯。
 
那么问题就简单多了。每个人无非就是只能从桥的两头选一头下桥。对于最短时间,你只要算出他们每个人分别从快的那头下桥的速度比max,而最长时间就是他们每个人分别从慢的那头下桥的速度比max。
代码时间:
#include <bits/stdc++.h>
using namespace std;
signed main(void)
{
    int l, n, minv = 0, maxv = 0;
    cin >> l >> n;
    for (int i = 0; i < n; i++)
    {
        int man;
        cin >> man;
        minv = max(minv, min(man, l - man + 1));
        maxv = max(maxv, max(man, l - man + 1));
    }
    cout << minv << ' ' << maxv;
    return 0;
}

 

思维题的代码都不怎么难,只要思路出来了,题自然会写。
posted @ 2020-08-14 22:05  running_hacker  阅读(110)  评论(0)    收藏  举报