1188 Gleaming the Cubes

原创 2007年10月15日 08:35:00
Gleaming the Cubes
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 428   Accepted: 213

Description
As chief engineer of the Starship Interprize, the task of repairing the hyperstellar, cubic, transwarped-out software has fallen on your shoulders. Simply put, you must compute the volume of the intersection of anywhere from 2 to 1000 cubes.

Input
The input consists of several sets of cubes for which the volume of their intersections must be computed. The first line of each set contains a number (from 2 to 1000) which indicates the number of cubes which follow, one cube per line. Each line which describes a cube contains four integers. The first three integers are the x, y, and z coordinates of the corner of a cube, and the fourth integer is the positive distance which the cube extends in each of the three directions (parallel to the x, y, and z axes) from that corner.

Following the data for the first set of cubes will be a number which indicates how many cubes are in a second set, followed by the cube descriptions for the second set, again one per line. Following this will be a third set, and so on.A number =0 indicate the end of input.

Output
Your program should process sets all of cubes, outputting the volume of their intersections to the output file, one set per line, until a zero is read for the number of cubes.

Sample Input

 

Sample Output

 

Source
Mid-Central USA 1993

 ******************************************************************************************

********************************************************************************************

Source Code
#include <iostream>
using namespace std;
struct Pot {
	int x,y,z;
}L,R,C;
int main() {
	int N,x,y,z,len;
	while(cin >> N,N!=0) {
		L.x = L.y = L.z = len = 0;
		cin >> L.x >> L.y >> L.z >> len;
		R.x = L.x + len;
		R.y = L.y + len;
		R.z = L.z + len;
		N--;
		bool flag = 1;
		while(N--) {
			C.x = C.y = C.z = len = 0;
			cin >> C.x >> C.y >> C.z >> len;
			if(C.x>=R.x||C.y>=R.y||C.z>=R.z)	{	flag = 0;break;}
			if(C.x+len<=L.x||C.y+len<=L.y||C.z+len<=L.z)	{flag =  0;break;}
			if(C.x>L.x)	L.x = C.x;
			if(C.y>L.y)	L.y = C.y;
			if(C.z>L.z)	L.z = C.z;
			if(C.x+len<R.x)	R.x = C.x+len;	
			if(C.y+len<R.y)	R.y = C.y+len;
			if(C.z+len<R.z)	R.z = C.z+len;
		}
		while(N>0)	{N--;cin >> C.x >> C.y >> C.z >> len;}
		if(flag == 0)	{cout << 0 << endl; continue;}
		cout << (R.x-L.x)*(R.y-L.y)*(R.z-L.z) << endl;
	}
	return 0;
}

25
9
2
0 0 0 10
9 1 1 5
3
0 0 0 10
9 1 1 5
8 2 2 3
0

【学习】python开源框架

1.Django: Python Web应用开发框架,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 2. Diesel:基...
  • shandianke
  • shandianke
  • 2014年09月14日 22:10
  • 6032

51 NOD 1188 最大公约数之和 V2(基础数论)

数学 推导公式 欧拉筛法
  • qingshui23
  • qingshui23
  • 2016年08月10日 17:24
  • 873

解密 | 大数据环境下的多维分析技术

在大数据环境下,IBM Cognos的Dynamic Cubes可以实现TB级的多维分析功能,文章探讨了影响Dynamic Cubes性能的因素,还介绍了Dynamic Cubes性能调优的一些手段。...
  • chenjunji123456
  • chenjunji123456
  • 2016年08月19日 11:01
  • 349

三维重建移动立方体法(Marching Cubes Algorithm)的查找表的构造

Marching cubes算法是实现三维重建经典算法,该算法的难点之一就是查找表的构造,本文为该算法的查找表经常出现的漏点的情况进行简短的分析,以及提供了详尽的实现代码。...
  • fourierFeng
  • fourierFeng
  • 2014年01月13日 14:33
  • 4229

我是如何在SQLServer中处理每天四亿三千万记录的

首要声明,我仅仅个程序员,不是专业的DBA,以下这篇文章是从一个疑问的处理进程去写的,而不是一开端就给咱们一个准确的成果,假如文中有不对的地方,请各位数据库大牛给予纠正,以便我能够更好的处理这次事务。...
  • mojize1106
  • mojize1106
  • 2015年10月01日 01:14
  • 339

图像数据到网格数据-1——MarchingCubes算法

概述   之前的博文已经完整的介绍了三维图像数据和三角形网格数据。在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像。比如利用CT机扫描人体得到人体断层扫描图像,就...
  • wozhengtao
  • wozhengtao
  • 2016年05月17日 00:34
  • 2841

kuangbin 1B简单bfs(模板题)

You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of un...
  • tigercoder
  • tigercoder
  • 2017年04月04日 16:54
  • 94

图像数据到网格数据-2——改进的SMC算法

概要   本篇接上一篇继续介绍网格生成算法,同时不少内容继承自上篇。上篇介绍了经典的三维图像网格生成算法MarchingCubes,并且基于其思想和三角形表实现了对样例数据的网格构建。本篇继续探...
  • u013339596
  • u013339596
  • 2014年02月13日 17:23
  • 1297

题目1188:约瑟夫环

题目1188:约瑟夫环 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2340 解决:989 题目描述:     N个人围成一圈顺...
  • u013491262
  • u013491262
  • 2017年03月21日 20:54
  • 66

Cubes(DFS+剪枝)

题意:给一个数N,求N最少由多少个数的立方构成,并输出这些数。 做法:DFS + 剪枝,剪枝的边界很很很重要!   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
  • zehong1995
  • zehong1995
  • 2017年08月04日 10:55
  • 46
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1188 Gleaming the Cubes
举报原因:
原因补充:

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