2019 杭电多校第八场 HDU - 6665 Calabash and Landlord 两矩形分平面
2024-10-02 07:06:34
题意
给出两个矩形,问这两个矩形把平面分成了几部分。
分析
不需要什么高级技能,只需 “简单” 的分类讨论。
(实在太难写了,对拍找出错误都不想改
推荐博客,其中有个很好的思路,即只讨论答案为2,3,5,6的情况,其余都为4,这样可以省掉一些麻烦。
#include <bits/stdc++.h>
using namespace std;
int main() {
int x11, x12, y11, y12;
int x21, x22, y21, y22;
int x1, y1, x2, y2;
int T;
scanf("%d", &T);
while(T--) {
scanf("%d %d %d %d %d %d %d %d", &x11, &y11, &x12, &y12, &x21, &y21, &x22, &y22);
if(x11 == x21 && x12 == x22 && y11 == y21 && y12 == y22) {
printf("2\n");
continue;
}
if(x12 <= x21 || x22 <= x11 || y12 <= y21 || y22 <= y11) {
printf("3\n");
continue;
} if((x11 > x21 && x12 < x22 && y11 > y21 && y12 < y22) || (x11 < x21 && x12 > x22 && y11 < y21 && y12 > y22)) {
printf("3\n");
continue;
}
//
if((x11 == x21 && y11 >= y21 && x12 < x22 && y12 <= y22) || (x11 == x21 && y11 <= y21 && x12 > x22 && y12 >= y22)) {
printf("3\n");
continue;
}
if((x11 > x21 && y11 >= y21 && x12 == x22 && y12 <= y22) || (x11 < x21 && y11 <= y21 && x12 == x22 && y12 >= y22)) {
printf("3\n");
continue;
}
if((x11 >= x21 && y11 == y21 && x12 <= x22 && y12 < y22) || (x11 <= x21 && y11 == y21 && x12 >= x22 && y12 > y22)) {
printf("3\n");
continue;
}
if((x11 >= x21 && y11 > y21 && x12 <= x22 && y12 == y22) || (x11 <= x21 && y11 < y21 && x12 >= x22 && y12 == y22)) {
printf("3\n");
continue;
} if((x11 > x21 && y11 < y21 && x12 < x22 && y12 > y22) || (x11 < x21 && y11 > y21 && x12 > x22 && y12 < y22)) {
printf("6\n");
continue;
} if((x12 < x22 && y12 == y22 && x11 > x21 && y11 < y21) || (x12 > x22 && y12 == y22 && x11 < x21 && y11 > y21)) {
printf("5\n");
continue;
}
if((x12 < x22 && y12 > y22 && x11 > x21 && y11 == y21) || (x12 > x22 && y12 < y22 && x11 < x21 && y11 == y21)) {
printf("5\n");
continue;
} if((x12 == x22 && y12 < y22 && x11 < x21 && y11 > y21) || (x12 == x22 && y12 > y22 && x11 > x21 && y11 < y21)) {
printf("5\n");
continue;
}
if((x12 > x22 && y12 < y22 && x11 == x21 && y11 > y21) || (x12 < x22 && y12 > y22 && x11 == x21 && y11 < y21)) {
printf("5\n");
continue;
} printf("4\n"); }
return ;
}
最新文章
- C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作的?
- iOS UISearchController的使用
- VS CODE 下的 ESLint 安装以及使用
- [POJ3277]City Horizon
- flush vs ob_flush
- HDU 4819 Mosaic --二维线段树(树套树)
- Tinyxml的简单应用
- linux下从源代码安装git
- GDI+ 绘图闪烁解决方法
- sql语句中like的使用
- 诡异的 &;quot;password取回&;quot; 邮件问题
- Swift3.0 UITextField
- JavaScript原生秒表、计时器
- [P3957][NOIP2017]跳房子 (DP+二分/队列?)
- shiro 角色与权限的解读
- js仿qq分组折叠效果
- idea 安装三方插件的方法
- 华中农业大学第五届程序设计大赛网络同步赛-G
- 【葡萄城报表】还在为画“类Word文档报表”而发愁吗?
- Jenkins与Docker的自动化CI/CD实战
热门文章
- LeetCode 70. 爬楼梯(Climbing Stairs)
- (二)linux 学习 -- 探究操作系统
- QT http请求数据
- WUSTOJ的“讨论”和“私聊”功能如何使用
- 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写
- The 2018 ACM-ICPC Asia Nanjing Regional Programming Contest
- 如何将SolidWorks文件另存为.obj文件及如何打开.obj格式文件
- openstack-neutron(2)
- TypeScript算法与数据结构-栈篇
- window事件