UVA - 10714 Ants(贪心)

MinerU安装指南:从源码到验证的完整流程 本文详细介绍了MinerU文档转换工具的安装流程,从源码获取、依赖安装到验证步骤,提供了完整的安装指南和常见问题解决方案。特别适合技术写作者和开发者快速部署这款高效的文档转换工具,提升工作效率。 阅读详情
Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu

Description

Download as PDF

Problem B: Ants

An army of ants walk on a horizontal pole of length  l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they turn back and start walking in opposite directions. We know the original positions of ants on the pole, unfortunately, we do not know the directions in which the ants are walking. Your task is to compute the earliest and the latest possible times needed for all ants to fall off the pole.

The first line of input contains one integer giving the number of cases that follow. The data for each case start with two integer numbers: the length of the pole (in cm) and n, the number of ants residing on the pole. These two numbers are followed by n integers giving the position of each ant on the pole as the distance measured from the left end of the pole, in no particular order. All input integers are not bigger than 1000000 and they are separated by whitespace.

For each case of input, output two numbers separated by a single space. The first number is the earliest possible time when all ants fall off the pole (if the directions of their walks are chosen appropriately) and the second number is the latest possible such time.

Sample input

 
2
10 3
2 6 7
214 7
11 12 7 13 176 23 191

Output for sample input

4 8
38 207

Piotr Rudnicki

Source

Root :: AOAPC I: Beginning Algorithm Contests (Rujia Liu) ::  Volume 4. Algorithm Design

Root :: Prominent Problemsetters ::  Piotr Rudnicki


题目大意:
在一个lcm 竹竿上有n只蚂蚁,每只蚂蚁的能以1cm/s的速度移动,
现在题目告诉你竹竿的长度lcm和每只蚂蚁初始所在的位置。当两只蚂蚁头碰头相遇时,他们会以相反的方向运动。但是题目没告诉你每只蚂蚁初始运动的方向,现在要你求出所以蚂蚁都落下竹竿的最短的时间和最长的时间。


解析:贪心题,当两个蚂蚁相遇的情况可以不用考虑,因为可以想象为两只蚂蚁朝相同的方向进行接力。所以最长的时间就是所有蚂蚁中距离竹竿端点最长的距离,而最短的时间,就是所有蚂蚁中距离竹竿端点较短距离的最长距离(因为那只蚂蚁最后落下竹竿)

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = 1000005;
int pos[N];
int len,n;
int main() {
	int t;
	scanf("%d",&t);
	while(t--) {
		scanf("%d %d",&len,&n);
		int maxa = -INF;
		int maxl;
		int mina = -INF;
		int minl;
		for(int i = 0; i < n; i++) {
			scanf("%d",&pos[i]);
			maxl = max(pos[i],len - pos[i]);
			maxa = max(maxa,maxl);
			minl = min(pos[i],len - pos[i]);
			mina = max(mina,minl);
		}
		printf("%d %d\n",mina,maxa);
	}
	return 0;
}

【Jlink & C#】通过C#实现Jlink RTT上位机的功能 某天看到安富莱家的自己开发的调试器可以实现输出中文调试信息到自己编写的Jlink RTT上位机上,觉得无比神奇,略好奇到底是如何做的,找了很久,发现其上位机的对应的实现好像也没有完全开源出来。后来经过很多搜索确认,知道了几个事实:那么有没有可能用C#来控制Jlink呢?答案是,有!!! 解决思路在于,C#调用JLinkARM.dll里面的函数 这里转载下我认为很有意义的发现结合以上的几个发现,加上我自己的测试,我把我对接JLinkARM.dll的C#接口分享出来,不保证都能用,我只是测试了几个常用的功能,R 阅读详情

相关推荐

黑马程序员Pink的javaScript课程APIday4

本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。

JLY19970726的博客 825

『管理调优』Oracle的event code说明

Code Description 10000 Control file debug event, name control_file 10001 Control file crash event1 10002 Control file crash event2 10003 Control file crash event3 10004 Control file crash event4 100

空空的影子 6753

别再死记硬背了!用一张时序图彻底搞懂Setup和Hold检查的本质

本文深入解析数字IC设计中的Setup和Hold时序检查原理,通过波形图直观展示数据在触发器间的传递过程。详细讲解Setup检查为何关注前一周期的数据,Hold检查为何关注同一周期的数据,并提供实际设计中的考量因素和修复策略,帮助工程师彻底理解时序检查的本质。

weixin_29927965的博客 364

uva--10714+找规律

题意:     一根长度为len的木棍上有n只蚂蚁,蚂蚁们都以1cm/s的速度爬行;如果一只蚂蚁爬到了木棍的端点,那么他就会掉下去;如果两只蚂蚁碰到一起了,他们就会掉头往相反方向爬行。输入len和n只蚂蚁的初始位置(以左端点为原点),问:所有蚂蚁都掉下木棍的最短时间和最长时间(蚂蚁初始爬行方向是不定的)。 思路:     最短时间是很显然的,只要靠近左端点的蚂蚁都往左端点爬,靠近右端点的蚂蚁

荒野孤鹰 1355

从调节阀到步进电机:图解位置型PID与增量式PID的核心区别

本文深入解析了位置型PID与增量式PID的核心区别。通过调节阀和步进电机的实例,阐明位置式PID输出绝对位置,适用于直接控制执行机构;而增量式PID输出位置变化量,天然支持无扰动切换,更适合步进电机等场景。文章重点剖析了增量式PID在系统安全与平滑切换方面的关键优势。

weixin_29051811的博客 358

微信中调起支付宝支付

微信中调用支付宝支付,首先我们知道微信是不能直接调用支付宝的,所以我们需要使用一个中间页提示用户在浏览器中打开,然后进行网页支付或打开app支付。以下为详细唤起支付宝的步骤、业务代码以及相关页面图。 如有问题欢迎评论留言,看到定回复哦^_^\(^o^)/~ 一、微信中唤起支付宝,有几个步骤: 1、中间页引导用户在浏览器中打开去唤起支付宝。 2、浏览器中打开支付宝或app中打开支付宝。 3...

han_calligrapher的博客 2万+

code1074 食物链

开3*n的并查集,其中x用来连接与x同类的,x+n用来连接x吃的,x+2*n用来连接x被吃的。 1 x y时,如果 x吃y 或 x被y吃,那么为假话, 否则x与y同类,x吃的y也吃,x被吃的y也被吃; 2 x y时,如果 x与y同类(x与x自然也是同类) 或 y吃x,那么为假话, 否则x吃y,y被x吃,y吃x被吃的。 代码: #include<iostream&gt...

dingcao9109的博客 740

关于 ABAP OPEN SQL 的动态 WHERE 条件和 Dynamic Selections

ABAP动态查询技术解析 本文介绍了ABAP中实现灵活数据库查询的动态选择技术,通过FREE_SELECTIONS函数组实现用户自定义查询条件。核心内容包括: 传统固定WHERE条件的局限性,无法满足业务多变需求 Dynamic Selections机制的工作原理,使用FREE_SELECTIONS_INIT初始化、FREE_SELECTIONS_DIALOG交互 完整Demo程序演示如何构建通用表数据浏览器: 用户输入表名后校验权限 调用动态选择函数生成条件 动态拼接WHERE子句执行查询 使用CL_SA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 676

UVA - 10714 - Ants

UVA - 10714 Ants Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description Problem B: Ants An army of ants walk on a

Never say never 778

游戏大厂状态同步与帧同步技术全解析——让虚拟世界万物协同的“时间齿轮”

本文深入解析了大厂游戏开发中的两种核心同步技术:状态同步和帧同步。状态同步适合大型MMO和FPS游戏,由服务端计算并广播世界状态;帧同步则通过统一操作输入实现MOBA和RTS游戏的绝对公平。文章详细比较了两者的差异、适用场景和底层实现原理,并揭秘了《王者荣耀》《PUBG》等热门游戏的同步机制。同时探讨了本地预测、延迟补偿、防作弊等关键技术,以及未来AI和云游戏带来的同步新挑战,为开发者提供了全面的技术参考和实践指南。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 920

安装anaconda3时出现错误:Failed to link extracted packages to D:\anaconda!...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1482

Code Vs 1014 装箱

有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入描述 Input Description 一个整数v,表示箱子容量 一个整数n,表示有n个物品 接下来n个整数,分别表示这n 个物品的各自体积输出描述 Output Description 一个整数,表示箱子剩余

SCaryon的博客 1188

RK3568平台(内存篇)DDR定频修改

如果需要DDR定频,则还需要注释掉其他多余的DDR频率,保留一个即可,例如注释掉opp-528000000、opp-1068000000、opp-1560000000,保留opp-2750000000则是定频最大频率。如果回退必须将 dmc_opp_table节点 的其他频率打开,否则系统无法选择到其他频率运行。ddr频点不对,先把ddr变频关掉,关闭后系统就不会一直重启了,以下是修改DDR频点的。rk3588修改定频节点在rk3588s.dtsi 的 dmc: dmc。

weixin_49303682的博客 1622

UVA 10714 Ants 蚂蚁 贪心+模拟 水题

题意:蚂蚁在木棍上爬,速度1cm/s,给出木棍长度和每只蚂蚁的位置,问蚂蚁全部下木棍的最长时间和最短时间。 模拟一下,发现其实灰常水的贪心。。。 不能直接求最大和最小的= =。只要求出每只蚂蚁都走长路下木棍时的最大值,和走短路时的就行了。 代码: /* * Author: illuz * Blog: http://blog.youkuaiyun.com/

水果君の日常 2204

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

UVA 10714(Ants)贪心

题目链接:https://vjudge.net/problem/UVA-10714刚看到这道题的时候觉得很熟悉,想起来之前刚学贪心时在白书上看过,去查了一下,POJ也有这题。题意就是一个木棍上有许多只蚂蚁,两只蚂蚁相遇后会改变自己的方向,给出蚂蚁的位置,初始方向任意。求最短时间和最长时间。思路:两只蚂蚁相遇再换方向就可以理解为蚂蚁穿过去了,直接求蚂蚁初始位置和木棍两端的距离,所有蚂蚁之间相互独立。...

Eknight123的博客 437

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[贪心]UVA10714 Ants

题意:蚂蚁在木棍上爬,速度1cm/s,给出木棍长度和每只蚂蚁的位置,问蚂蚁全部下木棍的最长时间和最短时间。 思路:典型的贪心题目,所有的蚂蚁往一个方向走的时候才会有最大值最小值。

九问的烦恼 1157

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

uva 10714 Ants(贪心)

uva 10714 Ants An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When tw

总有那么一群人喜欢盯着我的博客看,估计这是他们见过最长的博客名,我必须得告诉他们博客名最长可以写多长 704

uva 10714 Ants(贪心)

题目连接:10714 - Ants 题目大意:一根棍子上有n只蚂蚁, 这些蚂蚁开始可以任意朝着一个方向移动一直走,向左或是向右,并且移动速度是相同的,但是一旦蚂蚁碰到迎面走来的另一只蚂蚁,那么这两只蚂蚁都会马上改变移动方向,朝反方向移动。求所有蚂蚁离开木棍的最小和最长时间。 解题思路:其实题目给出的两只蚂蚁碰头的可能是迷惑人的,因为开始所有蚂蚁都朝一个方向移动,速度又相同,根本

不慌不忙、不急不躁 1397

UVa 10714 - Ants

题目链接:UVa 10714 - Ants 贪心。 题目中的碰撞完全是迷惑性的。其实仔细画画想想就会发现那个根本没有用,往一个方向走才有最大或者最小时间,而蚂蚁的速度都是一样的,所以不会碰撞。 想清楚了就是最水的贪心。 #include using namespace std; int len,T,_min,_max,num; int dis; int main() { c

fobdddf的专栏 960

UVA 10714 Ants (贪心)

10714 - Ants Time limit: 3.000 seconds 题意: 一根n厘米的杆子上,有m只蚂蚁,蚂蚁爬行速度为1厘米/秒。每只蚂蚁在一个位置上,可能向左爬也可能向右边爬。如果两只蚂蚁碰头,则两只蚂蚁都转向。如果蚂蚁爬到杆边就脱落了。现在要求出所有蚂蚁脱落的最小和最大时间。 思路: 其实这题说是两只蚂蚁碰头,两只蚂蚁都转向。其实这是一个误导人的条件。。

Remilia's 1214

UVA - 10714 Ants

最少时间就是每只蚂蚁选择最久的爬行方式 最多时间就是每只蚂蚁选择最快地爬行方式 #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int a,b,i,T,len,n,t; cin>>T;

Last Order 1170

uva 10714

这章什么高效算法设计啊,这题初看貌似很高端,后来分析了集中情况,这连模拟题都不是,最弱智的数的大小,好吧,主要是分析蚂蚁极端情况,思路我就不透露了 #include #include int ants[100000]; int main() { int len, t, max, min, n, lin; scanf( "%d", &t ); while(t--) { scanf

尘埃的博客 731

uva10714 简单贪心

题意:一根长l的绳子上有n个蚂蚁,每个蚂蚁的位置给出,行走方向不确定,求出蚂蚁全部走到端点掉下去的时间,最短和最长。 最长时间很好求比较每个蚂蚁到两段的时间就知道。最短是在最小数里面求最大。具体看代码。 // //  uva10714.cpp //  greedy // //  Created by ni ni on 15/4/26. //  Copyri

zjhcdns的博客 450

uva-10714-贪心

uva-10714-贪心 题意:有一条杆,长度为L,上面很几只蚂蚁,蚂蚁的朝向未知,爬速1cm/s,在爬行过程中,蚂蚁相撞了就往反方向爬,问,杆上没有蚂蚁至少要多久,至多要多久 解题思路: 蚂蚁1和蚂蚁2相撞,我们只要交换一下1和2的编号就可以,相当于没碰撞. #include "pch.h" #include <string...

weixin_33968104的博客 169

uva 10714 Ants

贪心算法,把相遇的蚂蚁看成对穿的就行了。 #include int ant[1000000]; void func(int len, int num) { int i; int max_time, min_time; int time; max_time = 0; for(i=0; i<num; i++) { if(ant[i] > len-ant[i]) tim

皓首不倦 不负少年 698
上一篇: CodeForces - 63C Bulls and Cows(暴力求解)
下一篇: UVA - 10954 Add All(贪心+优先队列)
HelloWorld10086
博客等级 码龄12年 88粉丝 614原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值