zoukankan      html  css  js  c++  java
  • POJ 1852 Ants

    POJ 1852 Ants

    题意:有n个蚂蚁以1cm/s的速度在一个长Lcm的杆子上爬行,当蚂蚁爬行到杆子的终点就会掉落,由于杆子太细,两只蚂蚁相遇时,他们不能交错通过,只能各自反向爬回去,对于每个蚂蚁我们知道它距离杆子最左端的距离Xi,但不知道他当前的朝向,计算所有蚂蚁落下杆子的最短时间和最长时间。

    分析:
    1.最短时间:当所有蚂蚁都朝着距离最近的那端爬,便不会相遇,所以最短时间就是这n只蚂蚁中所处位置最靠中间 的那一个爬到两端相对较短的那一端所需的时间。
    2.最长时间:如果忽视蚂蚁的区别,当两个蚂蚁相遇时互相穿过,也就是说对于每个蚂蚁的最长时间为max(s[i],L-s[i])。

    代码:

    #include "iostream"
    #include "cstdio"
    #include "algorithm"
    #include "cmath"
    using namespace std;
    
    const int M = 1e6+10;
    int t,n,L,s[M];
    int Min , Max , Marki ;
    
    void solve(){
      Min = Max = -M;
      for(int i=0;i<n;i++){
        Min = max(Min,min(s[i],L-s[i]));
        Max = max(Max,max(s[i],L-s[i]));
      }
    }
    int main(){
      scanf("%d",&t);
      while (t--) {
        scanf("%d%d",&L,&n);
        for(int i=0;i<n;i++)  scanf("%d", s+i);
        solve();
        printf("%d %d
    ",Min,Max);
      }
      return 0;
    }
    如要转载请注明转载出处:http://www.cnblogs.com/WArobot
  • 相关阅读:
    NCPC2016
    2016 ACM-ICPC CHINA-Final
    2016沈阳区域赛题解
    NAIPC2016部分题解
    Gym
    数论之莫比乌斯反演
    2018 多校 HDU
    LightOJ
    LightOJ
    java操作XML---XML基础知识
  • 原文地址:https://www.cnblogs.com/WArobot/p/6535986.html
Copyright © 2011-2022 走看看