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