LA 4636 Cubist Artwork .

本文针对一个三维重建问题,提供了一种有效的解决方案。通过对主视图和侧视图的高度信息进行匹配,利用计数方法确定了能够构成完整立方体的结构,并最终计算出了总的体积。此方法适用于计算机图形学及三维建模等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目地址:http://vjudge.net/problem/UVALive-4636

对于主视图中每一列,优先放到侧视图中高度一样的地方,其次是比他高的地方

那么也就是,两个视图中,高度一样的可以看成一个柱子,用cnt[i]记录下高度为i的柱子在侧视图中有几个

再主视图的柱子一个一个扫过去,一个一个放

#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=a;i<=(int)(b);++i)
const int maxn=10+5;
int w[maxn],d[maxn];
int cnt[25];
int main(int argc, char const *argv[])
{
	int r,c;
	while(scanf("%d%d",&r,&c)==2&&(r+c)){
		int sumD=0;
		memset(cnt,0,sizeof(cnt));
		REP(i,1,r) scanf("%d",&w[i]);
		REP(i,1,c) scanf("%d",&d[i]),sumD+=d[i],cnt[d[i]]++;
		int sumW=0;
		REP(i,1,r){	
			if(cnt[w[i]]==0) sumW+=w[i]; 
			if(cnt[w[i]]) cnt[w[i]]--;
		}
		printf("%d\n", sumD+sumW);
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值