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...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

[HDU1402]A * B Problem Plus

Problem descriptionLink 计算A*B,其中A,B的位数不超过50000Possible Solution高精乘:时间复杂度O(n^2)FFT :时间复杂度O(nlogn)将A,...

【bzoj2301】[HAOI2011]Problem b 莫比乌斯反演

Description对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。Input第一行一个整数n,接...

Codeforces Problem 778B 拆位做法

题目: http://codeforces.com/problemset/problem/778/B简述题意有n条语句,每一句描述一个变量名,以及其值(二进制),或表达式(仅由前面的变量名、"?"、运...

FOJ有奖月赛-2015年11月 Problem B 函数求解

Problem B 函数求解 Accept: 171    Submit: 540 Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

[LOJ #6156][找原根][FFT || NTT] A*B Problem

题目要求对于所有0≤k<m0\leq k<m的kk都输出解,可以考虑anskans_k的生成函数。 ansk=∑i×j=kai∗ajans_k=\sum_{i\times j=k} a_i*a_j ...

Round C APAC Test 2017 Problem B. Monster Path

Problem B. Safe Squares Codejamon trainers are actively looking for monsters, but if you are not a ...

Problem B: 图形计数与求面积

Description 定义三个类:Shape、Circle和Square,其中Shape为抽象类,包括: 1. 用于记录Shape类及其子类对象(即图形)个数的静态数据成员。 2. 构造函...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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