Java实现算法竞赛入门经典例题-蚂蚁
问题描述
一根长度为L厘米的木棍上有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒。
当两只蚂蚁相撞时,二者同时掉头(掉头时间忽略不计)。
给出每只蚂蚁的初始位置和朝向,计算T秒之后每只蚂蚁的位置。
输入格式
输入的第一行为数据组数。每组数据的第一行为3个正整数L, T, n(0≤n≤10 000);以下n行每行描述一只蚂蚁的初始位置,
其中,整数x为蚂蚁距离木棍左端的距离(单位:厘米),字母表示初始朝向(L表示朝左,R表示朝右)。
输出格式
对于每组数据,输出n行,按输入顺序输出每只蚂蚁的位置和朝向(Turning表示正在碰撞)。
在第T秒之前已经掉下木棍的蚂蚁(正好爬到木棍边缘的不算)输出Fell off。
样例输入1
2
10 1 4
1 R
5 R
3 L
10 R
10 2 3
4 R
5 L
8 R
样例输出1
Case #1:
2 Turning
6 R
2 Turning
Fell off
Case #2:
3 L
6 R
10 R
PS:
当两只蚂蚁相撞我可以当作两只蚂蚁穿过去
虽然我再不停的转头,但是我的相对位置一直没变
我最开始掉下去得永远是最靠边得两只
package 第七次模拟;
import java.util.Arrays;
import java.util.Scanner;
public class Demo2蚂蚁 {
public static class Node implements Comparable<Node> {
int id;// 输入顺序
int location;// -1,0,1
int p;// 位置
@Override
public int compareTo(Node o) {
// TODO 自动生成的方法存根
if (this.p > o.p) {
return 1;
} else if (this.p < o.p) {
return -1;
}
return 0;
}
}
public static Node[] start;
public static Node[] end;
public static int[] order;
public static String[] loca = { "L", "Turning", "R" };;
public static void main(String[] args) {
int num=1;
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
while (count-- > 0) {
int l = sc.nextInt();
int t = sc.nextInt();
int n = sc.nextInt();
start = new Node[n];
end = new Node[n];
order = new int[n];
for (int i = 0; i < n; i++) {
start[i] = new Node();
start[i].p = sc.nextInt();
String c = sc.next();
if (c.equals("L"))
start[i].location = -1;
else
start[i].location = 1;
start[i].id = i;
end[i] = new Node();
end[i].id = 0;
end[i].p = start[i].p + t * start[i].location;
end[i].location = start[i].location;
}
Arrays.sort(start);
Arrays.sort(end);
for (int j = 0; j < n; j++) {
order[start[j].id] = j;
}
for (int j = 0; j < n - 1; j++) {
if (end[j].p == end[j + 1].p) {
end[j].location = 0;
end[j + 1].location = 0;
}
}
System.out.println("Case #"+ num++ +":");
for (int i = 0; i < n; i++) {
int temp = order[i];
if (end[temp].p > l || end[temp].p < 0) {
System.out.println("Fell off\n");
} else {
System.out.println(end[temp].p + " " + loca[end[temp].location + 1]);
}
}
}
}
}
Java实现算法竞赛入门经典例题-蚂蚁的更多相关文章
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...
- 算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...
- [刷题]算法竞赛入门经典 3-12/UVa11809
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa11809:Floating-Point Numbers 代码: //UVa11 ...
- [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...
- [刷题]算法竞赛入门经典 3-7/UVa1368 3-8/UVa202 3-9/UVa10340
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 都是<算法竞赛入门经典(第二版)>的题目,标题上没写(第二版) 题目:算法竞赛入门经典 3-7/UVa13 ...
- [刷题]算法竞赛入门经典 3-4/UVa455 3-5/UVa227 3-6/UVa232
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa455:Periodic Strings 代码: //UVa455 #inclu ...
- [刷题]算法竞赛入门经典 3-1/UVa1585 3-2/UVa1586 3-3/UVa1225
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO(我也是在网上找到的pdf,但不记得是从哪里搜刮到的了,就重新上传了一遍) PS:第一次写博客分享我的代码,不知道我对c ...
- 算法竞赛入门经典训练指南——UVA 11300 preading the Wealth
A Communist regime is trying to redistribute wealth in a village. They have have decided to sit ever ...
- 算法竞赛入门经典 LA 4329(树状数组)
题意: 一排有着不同能力值的人比赛,规定裁判的序号只能在两人之间,而且技能值也只能在两人之间 问题: <算法竞赛入门经典-训练指南>的分析: 上代码: #include<iostre ...
随机推荐
- mysql计算
select @csum := 0;select create_time,merchant_id,award as 奖励,total_count as 数量,(@csum := @csum + awa ...
- java方法调用顺序
public class JavalearningApplicationTests { static { System.out.println("Test的静态代码块"); } p ...
- chmod的用法
指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案 ...
- MYSQL8 常用操作
开启root账号远程访问 方法1 mysql'; //修改密码认证方式为mysql_native_password mysql> GRANT ALL ON *.* TO 'root'@'%'; ...
- 爬虫之图片懒加载技术、selenium工具与PhantomJS无头浏览器
图片懒加载技术 selenium爬虫简单使用 2.1 selenium简介 2.2 selenium安装 2.3 selenium简单使用 2.3.1 selenium使用案例 2.3.2 selen ...
- EF Join连接查询的坑
最近做项目的时候遇到一个需要级联查询的数据,表中又没有定义相关的外键约束,所以限定了咱们只能使用Join方式的关联而不是Include的方式关联,关于Include和Join的详细用法,本屌就不再此处 ...
- ABAP基础2:数据类型
数据类型-Data Type:定义程序中可以使用的数据类型,使用前要先定义 数据变量-Data Variable:参照数据类型定义的.可以存储值的变量,就是变量嘛 数据类型 数据类型在ABAP程序中用 ...
- redis起步 zz
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章: 1.Redis简介 Redis是一个key-value存储系统.和Memcached类似,但是解决了 ...
- PAT-1135 Is It A Red-Black Tree(二叉查找树的创建和遍历)
There is a kind of balanced binary search tree named red-black tree in the data structure. It has th ...
- 统计元音(hdu20)
输入格式:输入一个整型,再循环输入带空格的字符串. 思考:先用scanf()函数输入一个整型,后面直接来个大循环,带空格字符串输入直接用gets()函数. 注意:由于scanf()里面多加了%c,&a ...