B - Intersection of Cubes


题意
求给定的n个长方体,求这n个长方体覆盖的体积
思路
思路来源于求n条线段交集。我们可以把每一个长方体看成用三条线替换,从而我们就可以把n个长方体的三条线放到三个桶里面,然后在3个桶里面求出线段交集。答案就是3个交集长度的乘积。
那我们怎样求n个线段的交,很简单的。把n个线段的两个端点分成左右端点,然后加进两个桶,然后取两个桶的一个最大值,一个最小值。
AC代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int x_max, x_min, y_max, y_min, z_max, z_min;
int main(){
    int t, kase = 0;
    scanf("%d", &t);
    while(t--){
	int n;
	x_max = y_max = z_max = 0;
	x_min = y_min = z_min = 1005;
	scanf("%d", &n);
	int x1, y1, z1, x2, y2, z2;
	while(n--){
		scanf("%d%d%d%d%d%d", &x1, &y1, &z1, &x2, &y2, &z2);
		x_max = max(x_max, x1);
		y_max = max(y_max, y1);
		z_max = max(z_max, z1);
		x_min = min(x_min, x2);
		y_min = min(y_min, y2);
		z_min = min(z_min, z2);
		//cout << x_min << " " << y_min << " " << z_min << endl;
	}
	int x_len = x_min - x_max;
	int y_len = y_min - y_max;
	int z_len = z_min - z_max;
	int ans;
	if(x_len < 0 || y_len < 0 || z_len < 0) ans = 0;
	else{
		ans = x_len * y_len * z_len;
	}
	printf("Case %d: %d\n", ++kase, ans);
    }
    return 0;
}
全部评论

相关推荐

03-03 23:42
复旦大学 Java
tongx_:闹呢,这找不到其他人还活不活
点赞 评论 收藏
分享
01-30 09:45
燕山大学 Java
喵_coding:这种直接跑就完事了 哪有毕业了才签合同 任何offer和三方都没有的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
4471次浏览 48人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16917次浏览 137人参与
# 米连集团26产品管培生项目 #
7384次浏览 226人参与
# 沪漂/北漂你觉得哪个更苦? #
1616次浏览 41人参与
# 你的实习产出是真实的还是包装的? #
3230次浏览 54人参与
# 春招至今,你的战绩如何? #
16140次浏览 146人参与
# MiniMax求职进展汇总 #
25260次浏览 322人参与
# HR最不可信的一句话是__ #
1107次浏览 32人参与
# AI面会问哪些问题? #
971次浏览 24人参与
# 你做过最难的笔试是哪家公司 #
1306次浏览 23人参与
# AI时代,哪个岗位还有“活路” #
2930次浏览 53人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152945次浏览 889人参与
# 简历第一个项目做什么 #
32180次浏览 363人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
8029次浏览 43人参与
# XX请雇我工作 #
51164次浏览 171人参与
# 简历中的项目经历要怎么写? #
311119次浏览 4271人参与
# 投格力的你,拿到offer了吗? #
178382次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
77008次浏览 375人参与
# AI时代,哪些岗位最容易被淘汰 #
64819次浏览 891人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187635次浏览 1123人参与
# 你怎么看待AI面试 #
180882次浏览 1318人参与
# 正在春招的你,也参与了去年秋招吗? #
364407次浏览 2642人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务