题目名称 1456. [UVa 10881] 蚂蚁
输入输出 Ants.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatar超级傲娇的AC酱 于2014-01-10加入
开放分组 全部用户
提交状态
分类标签
UVa
分享题解
通过:36, 提交:108, 通过率:33.33%
Gravatarwolf 100 0.127 s 0.32 MiB C++
Gravatar这_不错 100 0.170 s 0.56 MiB C++
Gravatar超级傲娇的AC酱 100 0.171 s 0.56 MiB C++
GravatarOIdiot 100 0.171 s 0.56 MiB C++
GravatarQhelDIV 100 0.171 s 0.69 MiB C++
Gravatartanoyama 100 0.172 s 0.56 MiB C++
GravatarSkywalker 100 0.172 s 0.58 MiB C++
Gravatardevil 100 0.173 s 0.58 MiB C++
GravatarHouJikan 100 0.174 s 0.56 MiB C++
Gravatar雪狼 100 0.175 s 0.58 MiB C++
关于 蚂蚁 的近10条评论(全部评论)
每多打一行,便多一个错
Gravatar烟雨
2017-11-03 20:37 8楼
这题比那道蚂蚁题绕…特别排序晕晕哒…
Gravatar水中音
2014-10-25 17:56 7楼
蚂蚁是忽略为质点了么?如果蚂蚁也分长短就好玩了.用了两次哈希过了。
Gravatarwolf
2014-10-24 18:40 6楼
参见大白书...
所有蚂蚁的相对顺序是保持不变的,因此把所有目标位置从小到大排序,则从左到右的每个位置对应于初始状态下从左到右的每只蚂蚁。由于原题中蚂蚁不一定按照从左到右的顺序输入,还需要预处理计算出输入中的第i只蚂蚁的序号order[i]
GravatarOIdiot
2014-02-20 22:33 5楼
回复 @CH.Genius_King :
good!
Gravatar废弃火车
2014-02-17 22:16 4楼
回复 @高高高高高 : 没看见冒号。。
GravatarC语言入门
2014-01-24 11:27 3楼
一定要注意输出 n(Case #n:)
Gravatar,
2014-01-15 19:47 2楼
非常巧妙的解决方案。
首先将蚂蚁的运动等效,由于碰撞前后2者的速度大小不变。可以等效蚂蚁“相互穿过”
接着,为了确定哪个点是哪只蚂蚁,可将蚂蚁按初始状态排序(蚂蚁的相对位置不变)。
Gravatar超级傲娇的AC酱
2014-01-10 19:54 1楼

1456. [UVa 10881] 蚂蚁

★★   输入文件:Ants.in   输出文件:Ants.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么往左爬要么往右爬,速度为1cm/s。当两只蚂蚁相遇时,二者同时掉头(掉头时间忽略不计)。给出每只蚂蚁的初始位置和朝向,计算T秒之后蚂蚁的位置。

【输入格式】

输入第一行为数据组数。每组第一行为三个整数L,T,n(n≤10 000);以下n行描述一只蚂蚁的初始位置,其中,整数x为蚂蚁距左端的距离(单位:厘米),字母表示初始朝向(L向左,R向右)。

【输出格式】

对于每组数据,输出n(Case #n:),按输入顺序输出每只蚂蚁的位置和朝向(Turning表示正在碰撞)。在T秒之前已经掉落的蚂蚁(正好爬到边缘不算)输出Fell off

【样例输入】

2
10 1 4
1 R
5 R
3 L
10 R
10 2 3
4 R
5 L
8 R

【样例输出】

Case #1:
2 Turning
6 R
2 Turning
Fell off
Case #2:
3 L
6 R
10 R

【来源】

UVa 10881 Piotr's Ants