UVa系列——102/Ecological Bin Packing

引用请注明出处:http://blog.csdn.net/int64ago/article/details/7420670

      简单的枚举题,没什么好说的,注意一点就是题目给的颜色顺序是BGC,而如果按照字典序最小优先的话访问要按BCG访问,所以用了三个SWAP。额外说明一点,这里为了使代码紧凑,用了很多宏,而且出现了do{……}while(0)这样的结构,这样定义的优点是很明显的,可以定义一个宏实现多条语句而不至于冲突,说白了可以把宏看做函数来用,当然,宏的优点是直接展开减少了函数调用花费的时间和栈的耗费。

#include  <stdio.h>
#include  <stdlib.h>

#define  PRINT(color) putchar(color==0?'B':(color==1?'C':'G'))
#define  PRINT_COLOR(x, y, z) do{ PRINT(x);PRINT(y);PRINT(z);}while(0)
#define  SUM_BINS(i, j) (bins[i] + bins[j+3] + bins[9-i-j])
#define  SWAP(i, j) do{int tmp=bins[i]; bins[i]=bins[j]; bins[j]=tmp;}while(0)

int main(int argc, char *argv[])
{
	int bins[9];
	while(scanf("%d",&bins[0]) != EOF){
		int i, pi,j, pj, sum = bins[0], mmax = -1;
		for(i = 1; i != 9; ++i){
			scanf("%d", &bins[i]);
			sum += bins[i];
		}
		SWAP(1, 2);SWAP(4, 5);SWAP(7, 8);
		for(i = 0; i != 3; ++i)
			for(j = 0; j != 3; ++j){
				if(i == j)continue;
				if(mmax < SUM_BINS(i, j)){
					mmax =SUM_BINS(i, j);
					pi = i; pj = j;
				} 
			}
		PRINT_COLOR(pi,pj,3-pi-pj);
		printf(" %d\n",sum - mmax);
	}
	return 0;
}

 
### 回答1: bin格式点云数据通常是一种二进制格式,其包含了点云数据的x、y、z坐标、颜色等信息。下载这种格式的点云数据需要注意以下几个步骤: 首先需要找到可供下载的bin格式点云数据源,可以从一些公共库或者私人数据集中寻找。比如,对于地理信息系统(GIS)领域的点云数据,可以从OpenTopography、National Ecological Observatory Network等公共库中找到相关数据。 其次,在下载之前需要确保计算机拥有足够的存储空间来存储这些数据,因为点云数据相对于其他图像数据而言会更加庞大。 然后,在下载的过程中需要注意选择适当的下载工具或者下载方式来保证下载的速度和稳定性。对于大型点云数据的下载,可以考虑使用分块、断点续传等方式来提高下载效率并保证数据完整性。 最后,在下载完成之后,需要认真对下载的数据进行校验和前期处理以确保数据的可用性。这包括将数据存储到合适的位置、选择合适的工具对数据进行清洗和分析、以及将数据转换为其他格式以便于使用等。 总的来说,bin格式点云数据的下载需要细心、认真地进行,并且需要结合后续的数据处理工作来最大程度地发掘数据的潜在价值。 ### 回答2: bin格式是点云数据常用的一种文件格式,它将点云数据以二进制数值的形式存储在文件中。如果你想要下载bin格式点云数据,一种简单的方法是通过网络上的点云数据网站进行下载。 首先,你可以在网站上搜索你需要的点云数据,然后筛选出采用bin格式存储的数据。接下来,你可以点击下载按钮,等待下载完成。 下载完成后,你需要使用点云数据的处理软件进行打开和读取。常见的点云数据处理软件有PCL、CloudCompare等。在打开文件时,需要设置bin格式的文件名和存储格式,一般在读取速度和存储空间之间进行取舍。读取完成后,你可以对点云数据进行各种处理操作,如滤波、配准、分割等。 需要注意的是,bin格式虽然存储速度和占用空间比较小,但是它不具有通用性,不同点云数据采用的存储格式可能存在差别。因此,在使用bin格式点云数据时,需要事先了解文件的存储格式,以便正确读取和使用数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值