POJ 1852 Ants(贪心)
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(贪心)的更多相关文章
- POJ 1852 Ants || UVA 10881 - Piotr's Ants 经典的蚂蚁问题
		两题很有趣挺经典的蚂蚁问题. 1.n只蚂蚁以1cm/s的速度在长为L的竿上爬行,当蚂蚁爬到竿子的端点就会掉落.当两只蚂蚁相撞时,只能各自反向爬回去.对于每只蚂蚁,给出距离左端的距离xi,但不知道它的朝 ... 
- poj 1852 ants 题解《挑战程序设计竞赛》
		地址 http://poj.org/problem?id=1852 题目描述 Description An army of ants walk on a horizontal pole of len ... 
- 【弹性碰撞问题】POJ 1852  Ants
		Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of ... 
- POJ 1852 Ants
		题目的意思是说一个长度为m的杆,上面有n个蚂蚁,告诉每个蚂蚁的初始位置,每个蚂蚁速度都是一样的,问所有的蚂蚁离开杆的最短和最长时间是多少. 模拟题,所有的蚂蚁看成一样的,可以这样理解,即使相撞按反方向 ... 
- POJ 1852 Ants (等价思考)
		题意:在一根杆上有 n 只蚂蚁,速度为1,方向不定,如果相碰,则反向运动,问你最长的时间和最短时间,所有蚂蚁都掉下杆去. 析:换个方法想,如果两只蚂蚁相碰了,会有什么现象?其实就和没有碰撞是一样的,没 ... 
- poj 1852 Ants_贪心
		题目大意:很多的蚂蚁都在长度为L(cm)的膀子上爬行,它们的速度都是1cm/s,到了棒子终端的时候,蚂蚁就会掉下去.如果在爬行途中遇到其他蚂蚁,两只蚂蚁的方向都会逆转.已知蚂蚁在棒子的最初位置坐标,但 ... 
- POJ 1852 Ants O(n)
		题目: 思路:蚂蚁相碰和不相碰的情况是一样的,相当于交换位置继续走. 代码: #include <iostream> #include <cstdio> #include &l ... 
- 【纯水题】POJ 1852 Ants
		题目大意 有一根长\(L\)厘米米的水平木棍上有\(n\)个蚂蚁,它们以每秒1cm/s的爬(fei)行(ben)到木棍的一端,之后掉下去. 给出每个蚂蚁的起始位置,但是不知道它们爬行的方向.相向而行的 ... 
- poj 1852&3684 题解
		poj 1852 3684 这两题思路相似就放在一起. 1852 题意 一块长为L长度单位的板子(从0开始)上有很多只蚂蚁,给出它们的位置,它们的方向不确定,速度为每秒一长度单位,当两只蚂蚁相遇的时候 ... 
随机推荐
- java实现第五届蓝桥杯锦标赛
			锦标赛 这题小编能力有限,还望大佬解决 题目描述 如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发. 如图[1.pn ... 
- Java多线程之深入解析ThreadLocal和ThreadLocalMap
			ThreadLocal概述 ThreadLocal是线程变量,ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的.ThreadLocal为变量在每个线程中都创建了一个副本,那 ... 
- OSI七层模型及各层作用
			物理层:建立.维护.断开物理连接 数据链路层:该层的作用包括了物理地址寻址,数据的成帧,流量控制,数据的检错,重发等.该层控制网络层与物理层之间的通信,解决的是所传输数据的准确性的问题.为了保证传输, ... 
- 5、vue的传值
			1-父组件向子组件 -父组件向孙子组件传值(属性传值) //父组件<template> <div id='app'> <headera v-bind:hea=" ... 
- node-sass问题
			cnpm install node-sass@latest 或者 所以用npm install -g cnpm --registry=https://registry.npm.taobao.org , ... 
- Jmeter基础003----Jmeter组件之测试计划和线程组
			一.测试计划 1.界面展示 测试计划是测试脚本的容器,主要是对测试脚本做总体设置.它定义了测试要执行什么,怎么执行(执行的).其界面如下图所示: 2.设置用户定义变量 在测试计划中定义的变量是在整 ... 
- 五个Taurus垃圾回收compactor优化方案,减少系统资源占用
			简介 TaurusDB是一种基于MySQL的计算与存储分离架构的云原生数据库,一个集群中包含多个存储几点,每个存储节点包含多块磁盘,每块磁盘对应一个或者多个slicestore的内存逻辑结构来管理. ... 
- umi 调试
			最近在umi. 设置一个layout字段, 结果左边菜单栏就出现了. 很神奇. 决定对这个库一探究竟. 我是一个喜欢看底层库的人,网上所有的启动方式都是yarn或者npm start 启动服务.然后 ... 
- Redis删除策略和逐出策略
			本文知识点 过期数据概念 数据删除策略 逐出算法 过期数据 先来看三个key值,分别为sex.name.age. 这三个值设置的指令为 set name kaka setex age 100 24 s ... 
- .Net Core Configuration Etcd数据源
			前言 .Net Core为我们提供了一套强大的Configuration配置系统,使用简单扩展性强.通过这套配置系统我们可以将Json.Xml.Ini等数据源加载到程序中,也可以自己扩展其他形 ... 
