POJ 1852

POJ 1852

题意:

给出一定数量的蚂蚁在一只管子里爬动 速度为1,爬动方向未知,蚂蚁碰头之后掉转方向,在爬到端头后掉下去。输入管子的长度,蚂蚁的数量,每只蚂蚁离左端的距离。求出所有蚂蚁全部爬出管子可能的最大时间,最小时间。

思路:

之前没有一点思路,上网查了之后,理解到蚂蚁碰头之后掉转方向可以视为直接穿过对方,因为每只蚂蚁都是没有区别的。

所以利用贪心的思想,只要求出每只蚂蚁爬出的最小时间,然后再比较找出最小时间的最大值就是所有蚂蚁爬出的最小时间。同理,最大时间就是求出每只蚂蚁爬出的最大时间,比较找出最大时间的最大值。

#include 
#include 
#include 
#include 
using namespace std;

int t,num,len,maxN,minN;
int a[100001];
int main(int argc, char const *argv[])
{
    cin>>t;
    while(t--){
        memset(a,0,sizeof(a));
        maxN = minN = 0;
        cin>>len>>num;
        for(int i = 0;i>a[i];  
        }
        for(int j = 0;j

你可能感兴趣的:(POJ 1852)