蚂蚁【A001】

【1005】出自附中练习场,其他编号(1005)【难度A】—————————————————————————————————————————————————————————————————————————————————————————————

【题目要求】有一群蚂蚁在一根水平放置的长为L cm的木棍上行走,并且每只蚂蚁的速度都固定为1 cm/s。当一只蚂蚁走到木棍的两端时就不幸地掉落了,当两只蚂蚁相碰时,它们就分别反向行走,并假设忽略相碰的时间。现在我们已知木棍的长度L,蚂蚁的只数N和每只蚂蚁在木棍上的初始位置Ai(以木棍一段为坐标原点0,另一端为木棍长度L),但是蚂蚁可以随机的选择它们的初始行走方向。你的任务是求出在所给定条件下,对蚂蚁行走方向任意的所有情况下,求出所有蚂蚁都从木棍上掉落的最早时间和最晚时间。

【输入要求】第一行两个正整数是L(木棍长度)和N(蚂蚁只数),接着一行是N个正整数Ai(1<=i<=N,0<=Ai<=L)。(1<=L<=1000,1<=N<=1000)

【输出要求】一行包括两个数用一个空格分隔,分别表示最早时间和最晚时间。

【输入示例】

10 3
2 6 7

【输出示例】

4 8

【解析】此题难度很低,但有一点必须理解,就是两只蚂蚁相撞之后什么也没发生,因为蚂蚁并不区分,不同蚂蚁掉下去并不影响结果,所以我们可以加入一些贪心算法:让最靠近某一木棍端点的蚂蚁向对面爬行,就是最晚时间,最早时间就找在中间的蚂蚁,向近的端点爬行。

【代码】

#include<iostream>

using namespace std;

int main()
{
    int i,l,n,a[10000],min[10000],e,r;
    cin>>l>>n;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(i=0;i<n;i++)
    {
        if(a[i]<=l/2)
            min[i]=a[i];
        else
            min[i]=l-a[i];
    }
    e=min[0];
    for(i=0;i<n;i++)
    {
       if(min[i]>e)
         e=min[i];
    }
    r=min[0];
    for(i=0;i<n;i++)
    {
       if(min[i]<r)
         r=min[i];
    }
    cout<<e<<" "<<l-r;
    //system("pause");
    return 0;
}

【注】此题已AC,代码很简单不用解释了吧。

时间: 2024-10-13 00:47:59

蚂蚁【A001】的相关文章

多个蚂蚁过独木桥,求通过的最长时间和最短时间

首先对题目进行分析: 求最长时间也就是最后掉下去的一只蚂蚁需要经历的最长时间: 求最短时间也就是最后掉下去的一只蚂蚁需要经历的最短时间:所以让所有的蚂蚁都向距离它们最近的那一段走,这样它们每个走的时间是短的,再求它们中用时最短的那个时间: 分析最长时间如下图所示: /************************************************************************* > File Name: 162.cpp > Author: > Mail:

蚂蚁问题

最近做了几个蚂蚁问题,还蛮有趣的..... 蚂蚁问题第一弹:poj 1852 Ants: Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12214   Accepted: 5366 Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a w

2017辽宁冬令营-4.蚂蚁

蚂蚁(ant.pas/c/cpp)题目大意在平面上有 N 只蚂蚁 N 个树洞,每个树洞只能容纳下一只蚂蚁,蚂蚁们都是直线行走的. 现在蚂蚁们希望能进入树洞中, 希望你能构造出一种方案使得任意两个蚂蚁的路线不相交.保证不会出现三点共线的情况.对于有多种不同的解,输出任意一组即可.无解时,输出-1.输入文件输入文件为 ant.in.第一行为一个数 N.接下来 N 行,每行两个非负整数,第 i+1 行为第 i 号蚂蚁的坐标.接下来 N 行,每行两个非负整数,第 i+N+1 行为第 i 号树洞的坐标.输

[zz]蟑螂蚂蚁蚊子已不住在我家了!这个方法100%见效…

http://mt.sohu.com/20150324/n410238511.shtml 蚂蚁怕酸,蚊子怕辣,蟑螂怕香.在下给各位提供一个不杀生又能驱赶蚂蚁.蚊子.蟑螂的妙法. 一.蚂蚁怕酸味 家里的甜食摆没几分钟,蚂蚁大军立即来袭,让人又气又厌,献给各位一项无毒无污染又安全有效的妙招: 整粒的新鲜柠檬,对切成两半,在看得到蚂蚁的地方及其动线,挤出柠檬汁,并拿着切半有果肉的那一面,沿途涂抹,神奇效果让您再一次验证大自然的奥妙! 二.蚊子怕辣味 蒜头呛退.将蒜头分植于花坛四周,其特殊的辛辣味隐隐飘

懒蚂蚁效应:成功的秘诀在于懒于杂物,勤于思考

概念:懒蚂蚁效应 日本北海道大学进化生物研究小组对一群黑蚂蚁进行了研究.他们把蚂蚁分为三个小组,每组30只,观察他们的行为.研究人员发现,大部分蚂蚁都很勤快地工作,寻找.搬运食物,但是却有少部分蚂蚁好像整天无所事事一样地东张西望. 研究人员在这群蚂蚁身上做上标记,并把这群蚂蚁称为:懒蚂蚁,然后,断绝了整个蚁群的食物来源.有趣的是,这时候那些平时工作很勤快的蚂蚁,突然都不知所措了,而那些"懒蚂蚁"们却挺身而出,带领蚂蚁们向他们侦查到的其它食物转移. 原来,这些"懒蚂蚁"

[OpenJudge 3064]坠落的蚂蚁

试题描述 一根长度为1米的木棒上有若干只蚂蚁在爬动.它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右.如果两只蚂蚁碰头,则它们立即交换速度并继续爬动.三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止.如果它们爬到了木棒的边缘(0或100厘米处)则会从木棒上坠落下去.在某一时刻蚂蚁的位置各不相同且均在整数厘米处(即1,2,3,…99厘米),有且只有一只蚂蚁A速度为0,其他蚂蚁均在向左或向右爬动.给出该时刻木棒上的所有蚂蚁位置和初始速度,找出蚂蚁A从此时刻到坠落所需要的时间. 输入

九度oj 题目1159:坠落的蚂蚁

题目描述: 一根长度为1米的木棒上有若干只蚂蚁在爬动.它们的速度为每秒一厘米或静止不动,方向只有两种,向左或者向右.如果两只蚂蚁碰头,则它们立即交换速度并继续爬动.三只蚂蚁碰头,则两边的蚂蚁交换速度,中间的蚂蚁仍然静止.如果它们爬到了木棒的边缘(0或100厘米处)则会从木棒上坠落下去.在某一时刻蚂蚁的位置各不相同且均在整数厘米处(即1,2,3,…99厘米),有且只有一只蚂蚁A速度为0,其他蚂蚁均在向左或向右爬动.给出该时刻木棒上的所有蚂蚁位置和初始速度,找出蚂蚁A从此时刻到坠落所需要的时间. 输

蓝桥--兰顿蚂蚁

兰顿蚂蚁 时间限制:1.0s   内存限制:256.0MB 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只“蚂蚁”. 蚂蚁的头部朝向为:上下左右其中一方. 蚂蚁的移动规则十分简单: 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格: 若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格. 规则虽然简单,蚂蚁的行为却十分复杂.刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,

UVALive 4043 Ants 蚂蚁(二分图最佳完美匹配)

题意:n个蚂蚁n棵树,蚂蚁与树要配对,在配对成功的一对之间连一条线段,要求所有线段不能相交.按顺序输出蚂蚁所匹配的树. 思路:这个题目真是技巧啊,如果知道要求的就是整体最优,那么就容易做了.而不能用贪心来为每个蚂蚁选择最近的树,这样可能八成还是相交了. 整体最优能让每条线段不相交,证明: 假设a1-b1与a2-b2相交.则dis(a1,b1)+dis(a2,b2)>=dis(a1,b2)+dis(a2,b1).如果我们所决定的最优匹配是按照整体距离最短来匹配的,那么dis(a1,b1)+dis(