Poj1852

题目求的是:所有蚂蚁用最短时间从木棍上走下来的最大值(也就是最后一个蚂蚁什么时候走下来的)

      所有蚂蚁中,用时最长的情况

PS:根本不用考虑两只蚂蚁相遇又折返的情况(可以直接认为是他两互不影响的走)

 1 #include <iostream>
 2
 3 using namespace std;
 4
 5 int main()
 6 {
 7     int t;
 8     cin >> t;
 9     while(t--)
10     {
11         int len, ants, sum = 0;
12         int min_t = 0, max_t = 0;
13         cin >> len >> ants;
14         int length;
15         for(int i = 1; i <= ants; i++)
16         {
17             cin >> length;
18             min_t = max(min_t, min(length, len-length));///停留在木棒上,可能用的最短时间的最大值
19             max_t = max(max_t, max(length, len-length));///可能的最大时间的最大值
20         }
21
22         cout << min_t << " " << max_t << endl;
23     }
24     return 0;
25 }
时间: 2024-11-03 21:08:07

Poj1852的相关文章

蚂蚁问题poj1852

*/--> pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} pre.src {background-color: Black; color: White;} 蚂蚁问题poj1852 Description An army of ants walk on

POJ1852 Ants 题解

题目 An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they turn back and start walking in opposite directions

《挑战程序竞赛》1.6.2 Ants poj1852

题意:n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行.当蚂蚁爬到竿子的端点时就会掉落.由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去.对于每只蚂蚁,我们知道它距离竿子左端的距离xi,但不知道它当前的朝向.请计算所有蚂蚁落下竿子所需的最短时间和最长时间. 解法:(1)对于最短时间,所有蚂蚁都朝向较近的端点走时时间最短,因为这种情况下不会发生两只蚂蚁相遇的情况,所以只要求出这种情况下最后一只到端点的蚂蚁的时间即可,时间亦最短. (2)对于最长时间,如果不考虑蚂蚁的实际体长等外

[POJ1852]Ants

Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12431   Accepted: 5462 Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediat

2017.5 校内预选赛 第三题 ants poj1852

题目: http://poj.org/problem?id=1852 只要想到点子上,很简单. 以第一个栗子来解释: 10 3 2 6 7 按照题意 A B 相遇则A B 改变方向,其实可以看作A和B相遇穿过继续运动. 这样就最短时间 只要找到每个蚂蚁到一端的最短时间,然后找出其中的最大值 例如最短时间分别对应 2 4 3 所以结果为4 最长时间 就只要找出每个点的最长时间然后取最大值 代码如下(能够ac): #include<iostream> using namespace std; in

思维水题 poj1852

题目链接:http://poj.org/problem?id=1852 题意:木板长为n,    蚂蚁数量为k,    后面k个数,依次代表蚂蚁的位置,  当蚂蚁到达边界的时候会立马掉下,当两个蚂蚁相碰面的时候,两蚂蚁各种反向走.(蚂蚁走的方向不定,但秒速度为1)   求所有蚂蚁都掉下来的最早时间和最晚时间. 思路:最早时间很容易求,就不多说了. 对于最晚时间,    对于两个蚂蚁相碰面,两个蚂蚁各自反向走,在这里可以看成两个蚂蚁方向都不变,沿着相同方向继续行走,得到的效果是一样的. AC代码:

POJ 1852 Ants

Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 15617   Accepted: 6753 Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it imm

水题/poj 1852 Ants

1 /* 2 PROBLEM:poj1852 3 AUTHER:Nicole 4 MEMO:水题 5 */ 6 #include<cstdio> 7 using namespace std; 8 int cmax(int a,int b){return a>b?a:b;} 9 int cmin(int a,int b){return a<b?a:b;} 10 int main() 11 { 12 int cases; 13 scanf("%d",&cas

Ants POJ - 1852 弹性碰撞+模拟

题目 https://vjudge.net/problem/POJ-1852 题意:在一个固定长度的木条上面有n只蚂蚁,每个蚂蚁的速度一样,方向任意(可由自己决定初始方向),每只蚂蚁碰头后会朝相反反向前进,问所有蚂蚁都从木条上掉下去(走到左右端点处)的最短和最长时间是多少? 这篇博客讲的挺好 https://www.cnblogs.com/zhenghao2/p/6446065.html 思路: 1.这道题一开始思考最大时间的时候,可能会想,如果在木条上面一直碰头变换位置,那么时间一定会是最大的