UVa 11507 - Bender B. Rodríguez Problem

原创 2016年05月31日 23:53:39

題目:在一個三維空間中,有一條沿著x軸正向傳播的射線長度為L,存在L-1個拐點(逆向),

            可以向上下左右四個方向偏轉(可以不偏轉,如果數據為No),問最後射線的方向。

分析:模擬。打表計算每次轉化后,對應的新的六個方向,因為是逆向,每次都相對基坐標系變換。

說明:和以前寫的魔方變換程序很像╮(╯▽╰)╭。

#include <cstring>
#include <cstdio>

int L[100001];

// +x:0, -x:1, +y:2, -y:3, +z:4, -z:5
int maps[6][6] = {
	0, 0, 0, 0, 0, 0,
	0, 0, 0, 0, 0, 0,
	2, 3, 1, 0, 4, 5,
	3, 2, 0, 1, 4, 5,
	4, 5, 2, 3, 1, 0,
	5, 4, 2, 3, 0, 1,
};

char output[6][3] = {
	"+x", "-x", "+y", "-y", "+z", "-z",
};

int main()
{
	int  n;
	char buf[3];
	while (~scanf("%d",&n) && n) {
		for (int i = 1; i < n; ++ i) {
			scanf("%s",buf);
			if (buf[1] == 'x') {
				L[i] = (buf[0]=='+')?0:1;
			}else if (buf[1] == 'y') {
				L[i] = (buf[0]=='+')?2:3;
			}else if (buf[1] == 'z') {
				L[i] = (buf[0]=='+')?4:5;
			}else {
				L[i] = -1;
			}
		}
		
		int state = 0;
		for (int i = 1; i < n; ++ i) {
			if (L[i] != -1) {
				state = maps[L[i]][state];
			}
		}
		
		puts(output[state]);
	}
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

UVa 11507 Bender B. Rodríguez Problem (模拟&异或)

11507 - Bender B. Rodríguez Problem Time limit: 4.000 seconds http://uva.onlinejudge.org/index.php?o...

【multimap/pair/数组】#28 A. Bender Problem

看到一道好长的题我主要是比较懒的看题, 然后我就看到了这么些看起来好吓人的解题报告: A. Bender Problem Solution by Polichka Let's look a...
  • okcd00
  • okcd00
  • 2014年06月05日 18:00
  • 621

Uva 100(The 3n+1 problem) c 代码

  • 2013年06月17日 16:37
  • 569B
  • 下载

UVa - 10047 The Monocycle 独轮车 多状态BFS 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 4

注:原题为多组数据。本题输入改为只有一组数据。 【问题描述】 独轮车是一种仅有一个轮子的特殊自行车。他的轮子被等分成5个扇形,分别涂上一种不同的颜色。现在有一个人骑自行车行驶在M*N的网格平面上。...

UVa 11265 The Sultan's Problem

Link To The Problem Solution : 半平面交、多边形面积 Code: // UVa 11265 The Sultan's Problem // Ha...
  • utoppia
  • utoppia
  • 2013年10月22日 10:33
  • 538

uva 10401 Injured Queen Problem

题意:受伤的皇后只能攻击它这一列的,和它周围的九个格子,题目给出一个字符串,如果第i个字符是?则表示皇后能放在任意位置,如果不是?则表示它指定了必须放在哪一行。问有几种放法。 #include #...

UVa Problem 10017 - The Never Ending Towers of Hanoi

// UVa Problem 10017 - The Never Ending Towers of Hanoi // Verdict: Accepted // Submission Date: 201...

UVA - 387 A Puzzling Problem(回溯)

A Puzzling Problem  The goal of this problem is to write a program which will take from 1...

UVa Problem 707 Robbery (抢劫)

// Robbery (抢劫) // PC/UVa IDs: 111205/707, Popularity: B, Success rate: average Level: 3 // Verdict:...

UVa Problem 705 Slash Maze (斜线迷宫)

// Slash Maze (斜线迷宫) // PC/UVa IDs: 110904/705, Popularity: B, Success rate: average Level: 2 // Ver...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVa 11507 - Bender B. Rodríguez Problem
举报原因:
原因补充:

(最多只允许输入30个字)