【纯水题】POJ 1852 Ants
题目大意
有一根长\(L\)厘米米的水平木棍上有\(n\)个蚂蚁,它们以每秒1cm/s的爬(fei)行(ben)到木棍的一端,之后掉下去。
给出每个蚂蚁的起始位置,但是不知道它们爬行的方向。相向而行的两只蚂蚁相遇后,它们都会掉头往反方向走。
求所有蚂蚁都落下木棍的最大时间和最小时间。
输入格式
先给出数据组数\(T\)。
每组第一行给出木棍长度\(L\)和蚂蚁数量\(n\)(\(1\le n\le 1000000\))。
第二行给出每个蚂蚁距离木棍左端\(x\)米。
样例输入
2
10 3
2 6 7
214 7
11 12 7 13 176 23 191
样例输出
4 8
38 207
思路
谢谢,有被水到
每个蚂蚁有从左和从右两种情况,不过相遇会掉头。
但是所有蚂蚁都是同时出发,而且长得都一样(雾),所以掉头前后的情况是没有区别的。
所以根本不用考虑掉头的情况,直接找每个蚂蚁按原路都掉下去的时间就可以了。
代码
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn=1e6+10;
const int INF=0x3f3f3f3f;
int l,n;
int a[maxn];
int getmin(){
int minans=-INF;
for(int i=1;i<=n;i++){
int mintemp=min(a[i],l-a[i]);
minans=max(minans,mintemp);//不要手残写成min函数
}
return minans;
}
int getmax(){
int maxans=-INF;
for(int i=1;i<=n;i++){
int maxtemp=max(a[i],l-a[i]);
maxans=max(maxans,maxtemp);
}
return maxans;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
memset(a,0,sizeof(a));
scanf("%d%d",&l,&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("%d %d\n",getmin(),getmax());
}
return 0;
}
【纯水题】POJ 1852 Ants的更多相关文章
- POJ 1852 Ants || UVA 10881 - Piotr's Ants 经典的蚂蚁问题
两题很有趣挺经典的蚂蚁问题. 1.n只蚂蚁以1cm/s的速度在长为L的竿上爬行,当蚂蚁爬到竿子的端点就会掉落.当两只蚂蚁相撞时,只能各自反向爬回去.对于每只蚂蚁,给出距离左端的距离xi,但不知道它的朝 ...
- POJ 1852 Ants(贪心)
POJ 1852 Ants 题目大意 有n只蚂蚁在木棍上爬行,每只蚂蚁的速度都是每秒1单位长度,现在给你所有蚂蚁初始的位置(蚂蚁运动方向未定),蚂蚁相遇会掉头反向运动,让你求出所有蚂蚁都·掉下木棍的最 ...
- 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 O(n)
题目: 思路:蚂蚁相碰和不相碰的情况是一样的,相当于交换位置继续走. 代码: #include <iostream> #include <cstdio> #include &l ...
- poj 1852&3684 题解
poj 1852 3684 这两题思路相似就放在一起. 1852 题意 一块长为L长度单位的板子(从0开始)上有很多只蚂蚁,给出它们的位置,它们的方向不确定,速度为每秒一长度单位,当两只蚂蚁相遇的时候 ...
- Ants (POJ 1852)
题目描述: Description An army of ants walk on a horizontal pole of length l cm, each with a constant spe ...
随机推荐
- Kubernetes-5:搭建企业级私有仓库Harbor
搭建企业级私有仓库Harbor 安装需求 python版本 >= 2.7 Docker引擎版本 >= 1.10 docker-compose版本 >= 1.6.0 安装环境 一.Py ...
- 蓝奏网盘CMD控制台
LanZouCloud-CMD 2.0 基于蓝奏云API开发的CMD版蓝奏云控制台 Github : https://github.com/zaxtyson/LanZouCloud-CMD 更新说明 ...
- 吴恩达《深度学习》-课后测验-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-Week 1 - Practical aspects of deep learning(第一周测验 - 深度学习的实践)
Week 1 Quiz - Practical aspects of deep learning(第一周测验 - 深度学习的实践) \1. If you have 10,000,000 example ...
- 自定义 NSLog以便发版和调试
问题 开发中用了大量的 NSLog,但是发布时想取消这些 NSLog 开发中是否经常用过 NSLog(@"%s", __FUNCTION__); 解决问题 新建 ExtendNSL ...
- [LeetCode]64. 最小路径和(DP)
题目 给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4 ...
- docker部署安装zabbix
安装docker 安装docker需要配置网络yum源,centos7自带的版本太低了 第一步:下载阿里云的docker安装包 在yum仓库的目录之下 [root@localhost yum.repo ...
- Jmeter(二十四) - 从入门到精通 - JMeter函数 - 中篇(详解教程)
1.简介 在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化.JMeter配置元件与前置处理器都能帮助我们进行参数化,但是都有局限性,为了帮助我们能够更好 ...
- Java基础一篇过(六)Java8--lambda表达式
一.简介 lambda表达式是Java8的一个重要特性,也可以称为闭包,常用于配合Java8的Stream对集合元素进行操作,使得代码更简介紧凑. 二.代码解析 虽说lambda表达式是一个新的特性, ...
- 【测试基础第六篇】bug定义及生命周期
bug定义 狭义:软件程序的漏洞或缺陷 广义:测试工程师或用户所发现和提出的软件可改进的细节(增强型.建议性)或需求文档存在差异的功能实现 职责:发现bug,提给开发,让其修改 bug类型--了解 代 ...
- a标签包裹div的问题
示例代码 1 <a href="#"> 2 <div> 3 <a href="#"></a> 4 </di ...