题目大意:一根长L厘米的木棍上有n只蚂蚁,每只蚂蚁有个开始的位置和爬行方向,速度为1.当两只蚂蚁相撞后,两者同时掉头继续爬行,求按输入顺序给出每只蚂蚁T秒后的位置后朝向。
/*蚂蚁相遇时可以理解为“对穿而过"
关键是找到移动后,对应位置的蚂蚁是最初的哪只蚂蚁,
于是发现蚂蚁移动后的相对顺序是不变的,于是用order数组哈希定位
order[i]数组:最初顺序为i的位置,这个打表用得好
感觉用两个数组就是节约2*n的i++
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=10000+5;
struct node
{
int id;//输入时的顺序
int p;//位置
int d;//方向
bool operator<(node t)const
{
return p<t.p;
}

该博客详细介绍了UVA在线判题系统中的一道问题——'Piotr's Ants',即蚂蚁在长木棍上按照特定速度和方向爬行,遇到碰撞会改变方向。内容探讨了问题背景、规则,以及如何计算T秒后蚂蚁的位置和方向。
订阅专栏 解锁全文
427

被折叠的 条评论
为什么被折叠?



