判断矩形相交的方法
在山区徒步,了解地形和天气变化的判断方法。 #生活技巧# #健身锻炼技巧# #户外运动训练#
给你两个矩形,分别给你矩形的左下角和右上角,问你是否相交。
第一个矩形:(x1,y1),(x2,y2)
第二个矩形: (x3,y3),(x4,y4)
如果满足max(x1,x3)<=min(x2,x4)&&max(y1,y3)<=min(y2,y4),则相交。
具体链接:http://codeforces.com/contest/1080/problem/C
AC代码:
#include <bits/stdc++.h>
using namespace std;
# define ll long long
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
ll n,m;
scanf("%lld %lld",&n,&m);
ll x1,y1,x2,y2;
ll x3,y3,x4,y4;
scanf("%lld %lld %lld %lld %lld %lld %lld %lld",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
ll white=0;
white=(n*m+1)/2;
if((x1%2+y1%2)==0||(x1%2+y1%2)==2)
{
white+=((x2-x1+1)*(y2-y1+1))/2;
}
else
white+=((x2-x1+1)*(y2-y1+1)+1)/2;
if((x3%2+y3%2)==0||(x3%2+y3%2)==2)
{
white-=((x4-x3+1)*(y4-y3+1)+1)/2;
}
else
white-=((x4-x3+1)*(y4-y3+1))/2;
ll x5,y5,x6,y6;
x5=max(x1,x3);
x6=min(x2,x4);
y5=max(y1,y3);
y6=min(y2,y4);
if(x5<=x6&&y5<=y6)
{
if((x5%2+y5%2)==0||(x5%2+y5%2)==2)
{
white-=((x6-x5+1)*(y6-y5+1))/2;
}
else
white-=((x6-x5+1)*(y6-y5+1)+1)/2;
}
printf("%lld %lld\n",white,n*m-white);
}
return 0;
}
网址:判断矩形相交的方法 https://www.yuejiaxmz.com/news/view/134541
相关内容
正交矩阵; 实对称矩阵; 为什么实对称矩阵一定可以对角化; AB=0 r(A)+r(B)<=n 证明; 初等矩阵; 初等矩阵的逆矩阵; 矩阵的左除右除;家居风水调理 判断家中风水好坏的简易方法
不论工作、创业还是生活,重要的是对“真”的判断
[题目]如图.AD 是△ABC 的角平分线.DE.DF 分别是△BAD 和△ACD 的高.得到下列四个结论:①OA=OD,②AD⊥EF,③当∠A=90°时.四边形 AEDF 是正方形,④AE+DF=AF+DE.其中正确的是 . 题目和参考答案——青夏教育精英家教网——
长方形有几个直角
如何判断宝宝的性别
怎么判断奶水吃空了
不论工作、创业还是生活,重要的是对“真”的判断 – 人人都是产品经理,
判断电感饱和的几个小窍门,你学会了吗?
汽车保养的黄金法则:如何判断你的车该保养了?