题目传送门

 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相关推荐

  1. cogs 1456. [UVa 10881,Piotr's Ants]蚂蚁

    1456. [UVa 10881,Piotr's Ants]蚂蚁 ★   输入文件:Ants.in   输出文件:Ants.out   简单对比 时间限制:1 s   内存限制:128 MB [题目描 ...

  2. UVA 10881 Piotr‘s Ants

    题意: 一根长度为L的木棍上有n只蚂蚁,每只蚂蚁要么往左爬,要么往右爬,速度为1cm/s.当两只蚂蚁相遇时,二者同时掉头,爬到木棍顶端的蚂蚁掉下.给出每只蚂蚁的初始位置和朝向,计算t秒后每只蚂蚁的位置 ...

  3. 贪心/思维题 UVA 11292 The Dragon of Loowater

    题目传送门 1 /* 2 题意:n个头,m个士兵,问能否砍掉n个头 3 贪心/思维题:两个数组升序排序,用最弱的士兵砍掉当前的头 4 */ 5 #include <cstdio> 6 #i ...

  4. little w and Soda(思维题)

    链接:https://ac.nowcoder.com/acm/contest/297/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  5. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  6. yoyo思维题(困难) 组合数学

    问题 B: yoyo思维题(困难) 时间限制: 1 Sec  内存限制: 256 MB 提交: 11  解决: 3 [提交][状态][讨论版][命题人:qianyouyou][Edit] [TestD ...

  7. 1884: 三个家庭(思维题)

    1884: 三个家庭 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 244 Solved: 81 [Submit][Status][Web Board] ...

  8. CF--思维练习-- CodeForces - 215C - Crosses(思维题)

    ACM思维题训练集合 There is a board with a grid consisting of n rows and m columns, the rows are numbered fr ...

  9. ACM思维题训练 Section A

    题目地址: 选题为入门的Codeforce div2/div1的C题和D题. 题解: A:CF思维联系–CodeForces -214C (拓扑排序+思维+贪心) B:CF–思维练习-- CodeFo ...

最新文章

  1. ASP.NET2.0打通文件图片处理任督二脉【月儿原创】
  2. linux后台任务部署平台Tac
  3. 科学为什么重要?马化腾公开信引热议,透露企业未来发展方向
  4. 入门学习webpack笔记
  5. OpenCV ORB角点检测
  6. linux数据库服务器的配置与管理,实验七_Linux_MySQL数据库服务器配置与管理
  7. ASIHTTPRequest 常用方法讲解
  8. 批量建立EXCHANGE邮件帐号建立三部曲
  9. CentOS6.5安装与配置Mysql数据库
  10. 4. 哪些视图中的数据不可以增删改操作?_MySQL之视图
  11. vue3中这几个变化你要注意了
  12. 手把手教你如何进行内网渗透
  13. wes7 系统开关机界面定制
  14. 机器学习 | 牛顿冷却定律
  15. 数据库实验7---数据库的备份与恢复
  16. win8.1+ubuntu13.10 双硬盘 uefi+gpt ASUS S400 安装经验
  17. 某易—将军令动态刨析算法(1)
  18. Gateway—网关服务
  19. 2023年软考网络工程师考试备考指南
  20. 【Android】网页广告植入规避方案

热门文章

  1. Myeclipse 2014配置SVN详细图解
  2. 页面布局与编写(续2)
  3. Java方法的静态绑定与动态绑定讲解
  4. shell脚本实现检測回文字符串
  5. LeetCode 239. Sliding Window Maximum
  6. CentOS 6.4利用xampp安装bugfree3
  7. C# WINFORM中的combobox.items.add实现像web开发那样,添加显示内容text和实际value值
  8. 荣耀30会升级鸿蒙吗,荣耀手机也能升级!第三批鸿蒙手机升级名单大曝光:全球第三稳了...
  9. git第一次提交代码至远程仓库-强制推送
  10. contenteditable元素的placeholder输入提示语设置