题意

给出两个矩形,问这两个矩形把平面分成了几部分。

分析

不需要什么高级技能,只需 “简单” 的分类讨论。

(实在太难写了,对拍找出错误都不想改

推荐博客,其中有个很好的思路,即只讨论答案为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 ;
}

最新文章

  1. C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作的?
  2. iOS UISearchController的使用
  3. VS CODE 下的 ESLint 安装以及使用
  4. [POJ3277]City Horizon
  5. flush vs ob_flush
  6. HDU 4819 Mosaic --二维线段树(树套树)
  7. Tinyxml的简单应用
  8. linux下从源代码安装git
  9. GDI+ 绘图闪烁解决方法
  10. sql语句中like的使用
  11. 诡异的 &amp;quot;password取回&amp;quot; 邮件问题
  12. Swift3.0 UITextField
  13. JavaScript原生秒表、计时器
  14. [P3957][NOIP2017]跳房子 (DP+二分/队列?)
  15. shiro 角色与权限的解读
  16. js仿qq分组折叠效果
  17. idea 安装三方插件的方法
  18. 华中农业大学第五届程序设计大赛网络同步赛-G
  19. 【葡萄城报表】还在为画“类Word文档报表”而发愁吗?
  20. Jenkins与Docker的自动化CI/CD实战

热门文章

  1. LeetCode 70. 爬楼梯(Climbing Stairs)
  2. (二)linux 学习 -- 探究操作系统
  3. QT http请求数据
  4. WUSTOJ的“讨论”和“私聊”功能如何使用
  5. 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写
  6. The 2018 ACM-ICPC Asia Nanjing Regional Programming Contest
  7. 如何将SolidWorks文件另存为.obj文件及如何打开.obj格式文件
  8. openstack-neutron(2)
  9. TypeScript算法与数据结构-栈篇
  10. window事件