POJ 1852 Ants

题目大意

有n只蚂蚁在木棍上爬行,每只蚂蚁的速度都是每秒1单位长度,现在给你所有蚂蚁初始的位置(蚂蚁运动方向未定),蚂蚁相遇会掉头反向运动,让你求出所有蚂蚁都·掉下木棍的最短时间和最长时间。

Input

输入的第一行包含一个整数,给出随后的个案数。每种情况的数据均以两个整数开头:极点的长度(以厘米为单位)和n(极点上的蚂蚁数)。这两个数字后面紧跟着n个整数,给出了每个蚂蚁在杆上的位置,以从杆左端开始的距离(无特定顺序)。所有输入整数均不大于1000000,并且它们之间用空格分隔。

Output

对于每种输入情况,输出两个数字,并用一个空格隔开。第一个数字是所有蚂蚁掉下来的最早可能的时间(如果正确选择了它们的行走方向),第二个数字是这样的最新可能的时间。

Sample Input

2

10 3

2 6 7

214 7

11 12 7 13 176 23 191

Sample Output

4 8

38 207

Solution

水题

像极了小学奥数的相遇问题

两者总路程为2n

那么一样的

蚂蚁相遇后不掉头和掉头的总路程不变

直接贪心让每只蚂蚁走离自己最近的端点即可

暴力贪心就完了……

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
// #define int long long
using namespace std; inline int read(){
int x = 0, w = 1;
char ch = getchar();
for(; ch > '9' || ch < '0'; ch = getchar()) if(ch == '-') w = -1;
for(; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';
return x * w;
} int main(){
int T = read();
int maxv = 0, minv = 0;
while(T--){
int l = read(), n = read();
maxv = 0, minv = 0;
int tmp = 0;
for(int i = 1; i <= n; i++){
tmp = read();
maxv = max(maxv, max(tmp, l - tmp));
minv = max(minv, min(tmp, l - tmp));
}
cout << minv << " " << maxv << endl;
}
return 0;
}

POJ 1852 Ants(贪心)的更多相关文章

  1. POJ 1852 Ants || UVA 10881 - Piotr's Ants 经典的蚂蚁问题

    两题很有趣挺经典的蚂蚁问题. 1.n只蚂蚁以1cm/s的速度在长为L的竿上爬行,当蚂蚁爬到竿子的端点就会掉落.当两只蚂蚁相撞时,只能各自反向爬回去.对于每只蚂蚁,给出距离左端的距离xi,但不知道它的朝 ...

  2. poj 1852 ants 题解《挑战程序设计竞赛》

    地址  http://poj.org/problem?id=1852 题目描述 Description An army of ants walk on a horizontal pole of len ...

  3. 【弹性碰撞问题】POJ 1852 Ants

    Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of ...

  4. POJ 1852 Ants

    题目的意思是说一个长度为m的杆,上面有n个蚂蚁,告诉每个蚂蚁的初始位置,每个蚂蚁速度都是一样的,问所有的蚂蚁离开杆的最短和最长时间是多少. 模拟题,所有的蚂蚁看成一样的,可以这样理解,即使相撞按反方向 ...

  5. POJ 1852 Ants (等价思考)

    题意:在一根杆上有 n 只蚂蚁,速度为1,方向不定,如果相碰,则反向运动,问你最长的时间和最短时间,所有蚂蚁都掉下杆去. 析:换个方法想,如果两只蚂蚁相碰了,会有什么现象?其实就和没有碰撞是一样的,没 ...

  6. poj 1852 Ants_贪心

    题目大意:很多的蚂蚁都在长度为L(cm)的膀子上爬行,它们的速度都是1cm/s,到了棒子终端的时候,蚂蚁就会掉下去.如果在爬行途中遇到其他蚂蚁,两只蚂蚁的方向都会逆转.已知蚂蚁在棒子的最初位置坐标,但 ...

  7. POJ 1852 Ants O(n)

    题目: 思路:蚂蚁相碰和不相碰的情况是一样的,相当于交换位置继续走. 代码: #include <iostream> #include <cstdio> #include &l ...

  8. 【纯水题】POJ 1852 Ants

    题目大意 有一根长\(L\)厘米米的水平木棍上有\(n\)个蚂蚁,它们以每秒1cm/s的爬(fei)行(ben)到木棍的一端,之后掉下去. 给出每个蚂蚁的起始位置,但是不知道它们爬行的方向.相向而行的 ...

  9. poj 1852&3684 题解

    poj 1852 3684 这两题思路相似就放在一起. 1852 题意 一块长为L长度单位的板子(从0开始)上有很多只蚂蚁,给出它们的位置,它们的方向不确定,速度为每秒一长度单位,当两只蚂蚁相遇的时候 ...

随机推荐

  1. java实现第五届蓝桥杯锦标赛

    锦标赛 这题小编能力有限,还望大佬解决 题目描述 如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发. 如图[1.pn ...

  2. Java多线程之深入解析ThreadLocal和ThreadLocalMap

    ThreadLocal概述 ThreadLocal是线程变量,ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的.ThreadLocal为变量在每个线程中都创建了一个副本,那 ...

  3. OSI七层模型及各层作用

    物理层:建立.维护.断开物理连接 数据链路层:该层的作用包括了物理地址寻址,数据的成帧,流量控制,数据的检错,重发等.该层控制网络层与物理层之间的通信,解决的是所传输数据的准确性的问题.为了保证传输, ...

  4. 5、vue的传值

    1-父组件向子组件  -父组件向孙子组件传值(属性传值) //父组件<template> <div id='app'> <headera v-bind:hea=" ...

  5. node-sass问题

    cnpm install node-sass@latest 或者 所以用npm install -g cnpm --registry=https://registry.npm.taobao.org , ...

  6. Jmeter基础003----Jmeter组件之测试计划和线程组

    一.测试计划 1.界面展示 测试计划是测试脚本的容器,主要是对测试脚本做总体设置.它定义了测试要执行什么,怎么执行(执行的).其界面如下图所示:   2.设置用户定义变量 在测试计划中定义的变量是在整 ...

  7. 五个Taurus垃圾回收compactor优化方案,减少系统资源占用

    简介 TaurusDB是一种基于MySQL的计算与存储分离架构的云原生数据库,一个集群中包含多个存储几点,每个存储节点包含多块磁盘,每块磁盘对应一个或者多个slicestore的内存逻辑结构来管理. ...

  8. umi 调试

    最近在umi.  设置一个layout字段, 结果左边菜单栏就出现了. 很神奇. 决定对这个库一探究竟. 我是一个喜欢看底层库的人,网上所有的启动方式都是yarn或者npm start 启动服务.然后 ...

  9. Redis删除策略和逐出策略

    本文知识点 过期数据概念 数据删除策略 逐出算法 过期数据 先来看三个key值,分别为sex.name.age. 这三个值设置的指令为 set name kaka setex age 100 24 s ...

  10. .Net Core Configuration Etcd数据源

    前言     .Net Core为我们提供了一套强大的Configuration配置系统,使用简单扩展性强.通过这套配置系统我们可以将Json.Xml.Ini等数据源加载到程序中,也可以自己扩展其他形 ...