POJ 1852

作者: vanadia | 来源:发表于2016-08-30 21:12 被阅读0次

POJ 1852

题意:

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

思路:

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

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

#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
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<num;i++){
            cin>>a[i];  
        }
        for(int j = 0;j<num;j++){
            minN = max(minN,min(a[j],len - a[j]));
        }
        for(int j = 0;j<num;j++){
            maxN = max(maxN,max(a[j],len - a[j]));
        }

        cout<<minN<<" "<<maxN<<" "<<endl;

    }
    return 0;
}

相关文章

  • POJ 1852

    POJ 1852 题意: 给出一定数量的蚂蚁在一只管子里爬动 速度为1,爬动方向未知,蚂蚁碰头之后掉转方向,在爬到...

  • Poj1852(Ants)

    题目分析: 首先很容易想到一个穷竭搜索(暴搜)算法,即枚举所有蚂蚁的初始朝向的组合,这可以利用递归函数实现。每只蚂...

  • 1852

    5022.04.26 星期二 晴 今早爸爸热的包子,煮的大米粥,云哲今天值日比平时又早一点儿出门,云灿吃...

  • Chapter9——图——最小生成树

    1. 题目列表 POJ1789(prim算法) POJ2485(prim) POJ1258(prim) POJ30...

  • poj来自群

    OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj...

  • Chapter5——数据结构——字符串

    1. 题目列表 poj1035,poj3080,poj1936 2. POJ1035——Spell checker...

  • ACM算法学习状态

    初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,p...

  • 常用技巧合集

    1.尺取法 POJ 3061 POJ3320 POJ 2739 2.反转问题 POJ 3276 集合的整数表示空集...

  • Chapter7——基础算法——哈希、二分

    1. 题目列表 POJ3349(数组hash) POJ3274(问题转换+数组hash、树状数组) POJ2151...

  • 计算几何

    极限 POJ 1981: Circle and Points POJ 1418: Viva Confetti题解链...

网友评论

      本文标题:POJ 1852

      本文链接:https://www.haomeiwen.com/subject/ybhqettx.html