思维题 UVA 10881 Piotr's Ants
题目传送门
1 /* 2 题意:在坐标轴上一群蚂蚁向左或向右爬,问经过ts后,蚂蚁的位置和状态 3 思维题:本题的关键1:蚂蚁相撞看作是对穿过去,那么只要判断谁是谁就可以了 4 关键2:蚂蚁的相对位置不变 关键3:order数组记录顺序 5 */ 6 #include <cstdio> 7 #include <algorithm> 8 #include <iostream> 9 #include <cstring> 10 #include <string> 11 #include <cmath> 12 using namespace std; 13 14 const int MAXN = 1e4 + 10; 15 const int INF = 0x3f3f3f3f; 16 const char dir_name[][10] = {"L", "Turning", "R"}; 17 struct Ant 18 { 19 int pos, dir, id; 20 bool operator < (const Ant &a) const 21 { 22 return pos < a.pos; 23 } 24 }pre[MAXN], now[MAXN]; 25 int order[MAXN]; 26 27 int main(void) //UVA 10881 Piotr's Ants 28 { 29 // freopen ("UVA_10881.in", "r", stdin); 30 31 int T; int cas = 0; int len, t, n; 32 scanf ("%d", &T); 33 while (T--) 34 { 35 scanf ("%d%d%d", &len, &t, &n); 36 char ch; 37 for (int i=1; i<=n; ++i) 38 { 39 int p, d; char ch; 40 scanf ("%d %c", &p, &ch); 41 d = ((ch=='L') ? -1 : 1); 42 pre[i] = (Ant) {p, d, i}; 43 now[i] = (Ant) {p+t*d, d, 0}; 44 } 45 46 sort (pre+1, pre+1+n); //计算相对位置 47 for (int i=1; i<=n; ++i) order[pre[i].id] = i; //输入(输出)的顺序 48 49 sort (now+1, now+1+n); 50 for (int i=1; i<n; ++i) 51 { 52 if (now[i].pos == now[i+1].pos) 53 now[i].dir = now[i+1].dir = 0; 54 } 55 56 printf ("Case #%d:\n", ++cas); 57 for (int i=1; i<=n; ++i) 58 { 59 int x = order[i]; 60 if (now[x].pos < 0 || now[x].pos > len) puts ("Fell off"); 61 else 62 { 63 printf ("%d %s\n", now[x].pos, dir_name[now[x].dir+1]); 64 } 65 } 66 67 puts (""); 68 } 69 70 return 0; 71 } 72 73 /* 74 Case #1: 75 2 Turning 76 6 R 77 2 Turning 78 Fell off 79 80 Case #2: 81 3 L 82 6 R 83 10 R 84 */
转载于:https://www.cnblogs.com/Running-Time/p/4644722.html
思维题 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
题意: 一根长度为L的木棍上有n只蚂蚁,每只蚂蚁要么往左爬,要么往右爬,速度为1cm/s.当两只蚂蚁相遇时,二者同时掉头,爬到木棍顶端的蚂蚁掉下.给出每只蚂蚁的初始位置和朝向,计算t秒后每只蚂蚁的位置 ...
- 贪心/思维题 UVA 11292 The Dragon of Loowater
题目传送门 1 /* 2 题意:n个头,m个士兵,问能否砍掉n个头 3 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 4 */ 5 #include <cstdio> 6 #i ...
- little w and Soda(思维题)
链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- ZOJ 3829 贪心 思维题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...
- yoyo思维题(困难) 组合数学
问题 B: yoyo思维题(困难) 时间限制: 1 Sec 内存限制: 256 MB 提交: 11 解决: 3 [提交][状态][讨论版][命题人:qianyouyou][Edit] [TestD ...
- 1884: 三个家庭(思维题)
1884: 三个家庭 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 244 Solved: 81 [Submit][Status][Web Board] ...
- CF--思维练习-- CodeForces - 215C - Crosses(思维题)
ACM思维题训练集合 There is a board with a grid consisting of n rows and m columns, the rows are numbered fr ...
- ACM思维题训练 Section A
题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...
最新文章
- ASP.NET2.0打通文件图片处理任督二脉【月儿原创】
- linux后台任务部署平台Tac
- 科学为什么重要?马化腾公开信引热议,透露企业未来发展方向
- 入门学习webpack笔记
- OpenCV ORB角点检测
- linux数据库服务器的配置与管理,实验七_Linux_MySQL数据库服务器配置与管理
- ASIHTTPRequest 常用方法讲解
- 批量建立EXCHANGE邮件帐号建立三部曲
- CentOS6.5安装与配置Mysql数据库
- 4. 哪些视图中的数据不可以增删改操作?_MySQL之视图
- vue3中这几个变化你要注意了
- 手把手教你如何进行内网渗透
- wes7 系统开关机界面定制
- 机器学习 | 牛顿冷却定律
- 数据库实验7---数据库的备份与恢复
- win8.1+ubuntu13.10 双硬盘 uefi+gpt ASUS S400 安装经验
- 某易—将军令动态刨析算法(1)
- Gateway—网关服务
- 2023年软考网络工程师考试备考指南
- 【Android】网页广告植入规避方案
热门文章
- Myeclipse 2014配置SVN详细图解
- 页面布局与编写(续2)
- Java方法的静态绑定与动态绑定讲解
- shell脚本实现检測回文字符串
- LeetCode 239. Sliding Window Maximum
- CentOS 6.4利用xampp安装bugfree3
- C# WINFORM中的combobox.items.add实现像web开发那样,添加显示内容text和实际value值
- 荣耀30会升级鸿蒙吗,荣耀手机也能升级!第三批鸿蒙手机升级名单大曝光:全球第三稳了...
- git第一次提交代码至远程仓库-强制推送
- contenteditable元素的placeholder输入提示语设置