zoukankan      html  css  js  c++  java
  • UVa 10714

      题目大意:有一个长度为lcm的木棍,上面有n只蚂蚁,以1cm/s的速度爬行,当两只蚂蚁相撞时两只蚂蚁各自掉头,蚂蚁走到两端时掉下去。不知道开始时每只蚂蚁各自的朝向,求全部蚂蚁都掉下去的可能最早时间和最晚时间。

      这个和UVa 10881 Piotr's Ants算是一个模型,不过这个简单一点,关键是从整体上看,蚂蚁“相撞掉头”和“擦肩而过”没有区别,在计算蚂蚁位置方面是等价的。所以,最早时间就是离中间最近的蚂蚁走到离它最近的一端的时间,最晚就是两端的蚂蚁走到离它更远的那一端的时间的较大者。

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <cmath>
     4 using namespace std;
     5 #define MAXN 1000000+10
     6 
     7 int ant[MAXN];
     8 
     9 int main()
    10 {
    11 #ifdef LOCAL
    12     freopen("in", "r", stdin);
    13 #endif
    14     int N;
    15     scanf("%d", &N);
    16     while (N--)
    17     {
    18         int l, n;
    19         scanf("%d%d", &l, &n);
    20         for (int i = 0; i < n; i++)
    21             scanf("%d", &ant[i]);
    22         sort(ant, ant+n);
    23         int latest = max (l-ant[0], ant[n-1]);
    24         double mid = 1.0 * l / 2;
    25         double lmin = fabs(ant[0]-mid);;  // lmin save the nearest distance from the half of the pole
    26         int p = 0;
    27         for (int i = 1; i < n; i++)
    28             if (fabs(ant[i]-mid) < lmin)
    29             {
    30                 lmin = fabs(ant[i]-mid);
    31                 p = i;
    32             }
    33         int earliest = min(ant[p], l-ant[p]);
    34         printf("%d %d
    ", earliest, latest);
    35     }
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    全栈项目搭建 ------- express
    全栈项目搭建 ------- mysql
    全栈项目搭建 ------- pm2
    基于mysql+node+vue-ssr+webpack全栈项目搭建
    前端技能2020
    项目线上地址汇总2020
    实现一个脚手架
    下载漏洞
    java学习笔记(13-接口、final、多态)
    java学习笔记(12-继承、抽象类)
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3205136.html
Copyright © 2011-2022 走看看