UVA-10714 Ants---蚂蚁模拟

题目链接:

https://vjudge.net/problem/UVA-10714

题目大意:

给你一个长为L厘米的木棍在上面有n只蚂蚁,蚂蚁的爬行时间均为1厘米/秒,两只蚂蚁先遇会立即调转方向,调转时间不久,并给出每只蚂蚁的位置x[i],问你所有蚂蚁都掉下木棍的最少时间和最长时间。

思路:

两只蚂蚁掉头和两只蚂蚁擦肩而过是等价的,所以问题就可以简化成所有蚂蚁掉下去的时间,而蚂蚁之间只会擦身而过,互不干扰。

最小时间就是所有蚂蚁掉下的最小时间中的最大值

最大时间就是所有蚂蚁掉下的最大时间中的最大值

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 #include<cstdio>
 5 #include<cstring>
 6 #define FOR(i, a, b) for(int i = a; i < b; i++)
 7 using namespace std;
 8 const int INF = 1e9+7;
 9 int n, T, m;
10 int a[1000005];
11 int main()
12 {
13     cin >> T;
14     while(T--)
15     {
16         cin >> n >> m;
17         for(int i = 0; i < m; i++)cin >> a[i];
18         int ansmin = 0, ansmax = 0;
19         for(int i = 0; i < m; i++)
20         {
21             ansmin = max(ansmin, min(a[i], n - a[i]));
22             ansmax = max(ansmax, max(a[i], n - a[i]));
23         }
24         cout<<ansmin<<" "<<ansmax<<endl;
25     }
26     return 0;
27 }
原文地址:https://www.cnblogs.com/fzl194/p/8758969.html