xtu oj 1178 Rectangle

题目描述

给你两个平行于坐标轴的矩形,请判断两者是不是相交(面积有重合的部分)?

输入

第一行是一个整数K,表示样例数。 每个样例占两行,每行是4个整数,表示一个矩形的对角线点的坐标,坐标值为0到1,000之间。

输出

每个样例输出一个结果,相交输出Yes,否则输出No。

样例输入

复制代码
2
0 0 1 1
1 1 2 2
0 0 2 2
1 1 3 3

样例输出

复制代码
No
Yes

AC代码

cs 复制代码
#include<stdio.h>
int Max(int a,int b){
	if(a>b)return a;
	else return b;
}
int Min(int a,int b){
	if(a>b)return b;
	else return a;
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--){
		int x1,y1,x2,y2;
		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
		int x3,y3,x4,y4;
		scanf("%d%d%d%d",&x3,&y3,&x4,&y4);
		double ox1=(x1+x2)/2;//矩形中心坐标值 
		double oy1=(y1+y2)/2;
		double ox2=(x3+x4)/2;
		double oy2=(y3+y4)/2;
		double lx=(Max(x1,x2)-Min(x1,x2)+Max(x3,x4)-Min(x3,x4))/2;//两个矩阵相邻拼起来的一半 
		double ly=(Max(y1,y2)-Min(y1,y2)+Max(y3,y4)-Min(y3,y4))/2;
		double t1=Max(ox1,ox2)-Min(ox1,ox2);//中心坐标差值 
		double t2=Max(oy1,oy2)-Min(oy1,oy2);
		if(t1<lx&&t2<ly){
			printf("Yes\n");
		}
		else printf("No\n");
    }
}

解题思路:如果两个矩形中心点的横纵坐标的差都小于两个矩阵相邻拼接起来的长度的一半,则两个矩形相交。

AC代码

cs 复制代码
#include<stdio.h>
int Max(int a,int b){
	if(a>b)return a;
	else return b;
}
int Min(int a,int b){
	if(a>b)return b;
	else return a;
}
int main()
{
	int T;
	scanf("%d",&T);
	while(T--){
		int x1,y1,x2,y2;
		scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
		int x3,y3,x4,y4;
		scanf("%d%d%d%d",&x3,&y3,&x4,&y4);
		int t1,t2,t3,t4;
		int max1=Max(Min(x1,x2),Min(x3,x4));
		int min1=Min(Max(x1,x2),Max(x3,x4));
		int max2=Max(Min(y1,y2),Min(y3,y4));
		int min2=Min(Max(y1,y2),Max(y3,y4));
		if(max1<min1&&max2<min2){
			printf("Yes\n");
		}
		else printf("No\n");
	}
}
相关推荐
Pniubi18 分钟前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
東隅已逝,桑榆非晚3 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
Eyfcom3 小时前
〖物联网终端实战 01〗UWB 室内高精度定位:仓储 AGV 与人员的厘米级轨迹追踪
物联网·算法·物流系统·快递系统·跨境物流快递系统·物联网终端实战
淡海水3 小时前
09-04-内存-Unity原生对象生命周期
unity·c#·游戏引擎·gc
bro_Java6664 小时前
《排序的底层逻辑:比较、交换与分治》
java·算法·排序算法
爱喝雪碧的可乐4 小时前
MATLAB
开发语言·算法·matlab
叼烟扛炮4 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
careathers5 小时前
【数据结构】基于比较的排序算法 - 交换排序
数据结构·算法·排序算法
HUANGZHENXUAN1235 小时前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端
Rabitebla6 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法