UVA 10881 Piotr‘s Ants
题意:
一根长度为L的木棍上有n只蚂蚁,每只蚂蚁要么往左爬,要么往右爬,速度为1cm/s。当两只蚂蚁相遇时,二者同时掉头,爬到木棍顶端的蚂蚁掉下。给出每只蚂蚁的初始位置和朝向,计算t秒后每只蚂蚁的位置。
思路:
蚂蚁相遇掉头和不掉头继续爬,在整体上没有任何区别,所以只需计算每只蚂蚁t秒后的位置,并确定是哪一只蚂蚁就好。因为题目说明蚂蚁相遇后会掉头,所以蚂蚁的相对位置是不变的,因此把所以蚂蚁目标位置从小到大排序,则从左到右的每个位置对应初始状态下从小到大的每只蚂蚁。
代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#define endl "\n"
using namespace std;typedef long long ll;const int N = 10010;
struct point{int id, n, t;
}b[N], a[N];
bool cmp(point a, point b) {return a.n < b.n;
}
string s[] = {"L", "Turning", "R"};int main()
{int T, l, t, n;cin>>T;for(int i=1; i<=T; i++) {cout<<"Case #"<<i<<':'<<endl;cin>>l>>t>>n;char c;int x;for(int i=0; i<n; i++) {cin>>x>>c;b[i] = (point){i, x, c == 'L' ? -1 : 1};}sort(b, b + n, cmp);int index[N];for(int i=0; i<n; i++)index[b[i].id] = i;for(int i=0; i<n; i++)a[i] = (point){0, b[i].n + b[i].t * t, b[i].t};sort(a, a + n, cmp);for(int i=1; i<n; i++) {if(a[i].n == a[i-1].n)a[i].t = a[i-1].t = 0;}for(int i=0; i<n; i++) {int x = index[i];if(a[x].n < 0 || a[x].n > l)cout<<"Fell off"<<endl;elsecout<<a[x].n<<' '<<s[a[x].t+1]<<endl;}cout<<endl;}
}
UVA 10881 Piotr‘s Ants相关推荐
- cogs 1456. [UVa 10881,Piotr's Ants]蚂蚁
1456. [UVa 10881,Piotr's Ants]蚂蚁 ★ 输入文件:Ants.in 输出文件:Ants.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描 ...
- 思维题 UVA 10881 Piotr's Ants
题目传送门 1 /* 2 题意:在坐标轴上一群蚂蚁向左或向右爬,问经过ts后,蚂蚁的位置和状态 3 思维题:本题的关键1:蚂蚁相撞看作是对穿过去,那么只要判断谁是谁就可以了 4 关键2:蚂蚁的相对位置 ...
- UVa10881 Piotr's Ants【模拟】
问题链接:UVa10881 Piotr's Ants. 问题简述: 一根长L厘米的木棍上有n只蚂蚁,已知每只蚂蚁有个开始的位置和爬行方向,速度为1.当两只蚂蚁相撞后,两者同时掉头继续爬行,求按输入顺序 ...
- UVa10881 Piotr's Ants
题意:给出一个长为lcm的棍子,上面有n个蚂蚁,每个蚂蚁的速度为1cm/s,蚂蚁向左或者向右移动,当两个蚂蚁相遇时转向,问t秒后各自的位置 思路:因为蚂蚁速度一样,可以认为当蚂蚁相遇后,各自继续在移动 ...
- UVA - 10881(思维题)------蚂蚁走竹竿
题意:在这个题中.给了你竹竿的长度L,给了你蚂蚁的个数n,然后下边n行是每一只蚂蚁的初始位置.问你在T秒之后每一只蚂蚁的位置. 这个题给的时间是3000ms,如果一直要写模拟的话,有点烦人.其实,做这 ...
- UVA10881 Piotr‘s Ants
#include <iostream> #include <cstdio> #include "bits/stdc++.h" #define ll long ...
- UVA-10881 蚂蚁 Piotr's Ants
题目大意:一根长L厘米的木棍上有n只蚂蚁,每只蚂蚁有个开始的位置和爬行方向,速度为1.当两只蚂蚁相撞后,两者同时掉头继续爬行,求按输入顺序给出每只蚂蚁T秒后的位置后朝向. /*蚂蚁相遇时可以理解为&q ...
- uva 10881蚂蚁(思维题)---理清关系
题目大意:一根长度为L厘米的木棍上有n只蚂蚁每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米秒.当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计).给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂蚁的位置 ...
- OI 刷题记录——每周更新
每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...
最新文章
- MySQL的MVCC机制是什么?
- SAP RETAIL商品主数据Basic Data视图里几个让人莫名惊诧的字段
- 【总结】Kylin LDAP配置
- 分享--关于学习的一些事儿
- NLP-基础知识-005(专家系统)
- Python爬虫学习笔记(三)——正则表达式
- 如何用Excel统计出各科指定分数段的人数?(亲测)
- [深度学习-原理篇]什么是循环神经网络RNN与LSTM
- mysql 杂记(一)
- 树莓派百度语音识别+图灵机器人对话聊天机器人
- (转)为什么用ls和du显示出来的文件大小有差别?
- 计算机原理与结构 实验1《实验工具使用》
- mysql binlog 回滚_【MySQL】Mysql误操作后使用binlog2sql快速回滚
- nuxt项目当中出现The client-side rendered virtual DOM tree is not matching server-rendered content
- 教你用Python实现经典游戏《小蜜蜂》
- 求两点连线与其中一点为球心球的交点——赋MATLAB代码
- python为自己龟蜗速更新的小说生成词云
- jumpserver版本升级(1.3.1升级到最新版)
- [新华三-H3C]ppp实验
- 使用Windows任务计划自动运行Python程序