1816: 矩形

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 179  Solved: 54



SubmitStatusWeb
Board

Description

小S和小D两个小雪参,在玩一个关于矩形的游戏以帮助他们学会怎么计算矩形的面积然后完成作业去打游戏(两个小雪参一起打游戏你怕不怕!)。他们约定每个人给出两个坐标,分别是两个矩形的左下角和右上角的坐标,他们的游戏规则很简单,就是看谁先找出来这两个矩形的覆盖的总面积大小。你的问题就是帮助他们给出正确答案。

Input

输入的第一行为一个整数T,代表样例的组数。

每组样例包含4个坐标(x,y),( -100000000<= x,y <= 100000000 )前两个是小S给出的矩形左下角和右上角的坐标,后面两个是小D给出来的坐标。

Output

输出两个矩形覆盖的总面积大小。

Sample Input

3

-2 -2 2 2 -2 -2 2 2

0 0 1 1 0 0 2 2

-2 -2 2 2 1 -3 3 -1

Sample Output

16

4

19

代码:

#include<iostream>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
const int maxn=5;
struct node {
double num;
int flag;
}ansx[maxn],ansy[maxn];
bool cmp(const node &a, const node &b) {
return a.num<b.num;
}
int main() {
int t;
scanf("%d",&t);
while(t--) {
double x,y;
for(int i=0;i<4;++i) {
scanf("%lf%lf",&x,&y);
ansx[i].num=x;ansy[i].num=y;
if(i<=1) {
ansx[i].flag=-1;ansy[i].flag=-1;
} else {
ansx[i].flag=1;ansy[i].flag=1;
}
}
double area=0;
area+=fabs(ansx[1].num-ansx[0].num)*fabs(ansy[1].num-ansy[0].num);
area+=fabs(ansx[3].num-ansx[2].num)*fabs(ansy[3].num-ansy[2].num);
sort(ansx,ansx+4,cmp);
sort(ansy,ansy+4,cmp);
double darea=0;
if(ansx[0].flag+ansx[1].flag==0&&ansy[0].flag+ansy[1].flag==0) {
double dx=fabs(ansx[1].num-ansx[2].num);
double dy=fabs(ansy[1].num-ansy[2].num);
darea=dx*dy;
}
area-=darea;
printf("%.0lf\n",area);
}
return 0;
}

zzuli 1816: 矩形 排序思维的更多相关文章

  1. ZOJ 4124 拓扑排序+思维dfs

    ZOJ - 4124Median 题目大意:有n个元素,给出m对a>b的关系,问哪个元素可能是第(n+1)/2个元素,可能的元素位置相应输出1,反之输出0 省赛都过去两周了,现在才补这题,这题感 ...

  2. CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)

    ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...

  3. zzuli 1812: sort 排序

    1812: sort Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 352  Solved: 216 SubmitStatusWeb Board De ...

  4. HDU 6073 Matching In Multiplication(拓扑排序+思维)

    http://acm.hdu.edu.cn/showproblem.php?pid=6073 题意:有个二分图,左边和右边的顶点数相同,左边的顶点每个顶点度数为2.现在有个屌丝理解错了最佳完美匹配,它 ...

  5. luogu 3441 [POI2006]MET-Subway 拓扑排序+思维

    Description 给出一棵N个结点的树,选择L条路径,覆盖这些路径上的结点,使得被覆盖到的结点数最多. Input 第一行两个正整数N.L(2 <= N <= 1,000,000, ...

  6. 2019牛客暑期多校训练营(第五场)H-subsequence 2 (拓扑排序+思维)

    >传送门< 题意: 给你几组样例,给你两个字符a,b,一个长度len,一个长度为len的字符串str,str是字符串s的子串 str是s删掉除过a,b两字符剩下的子串,现在求s,多种情况输 ...

  7. 洛谷 P4017 最大食物链计数 (拓扑排序,思维)

    题意:有\(n\)个点,连\(m\)条边,求最多有多少条食物链(从头走到为有多少条路径). 题解:之前抽了点时间把拓扑排序补完了,这题其实就是一道拓扑排序的裸题.关于拓扑排序: ​ 1.首先,我们用\ ...

  8. 第十二届湖南省赛 (B - 有向无环图 )(拓扑排序+思维)好题

    Bobo 有一个 n 个点,m 条边的有向无环图(即对于任意点 v,不存在从点 v 开始.点 v 结束的路径). 为了方便,点用 1,2,…,n 编号. 设 count(x,y) 表示点 x 到点 y ...

  9. Codeforces Round #622 (Div. 2)C2 Skyscrapers最大"尖"性矩形,思维||分治

    题:https://codeforces.com/contest/1313/problem/C2 题意:给出n个数,分别代表第i个位置所能搭建的最大高度,问以哪一个位置的塔的高度为基准向左的每一个塔都 ...

随机推荐

  1. 全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存

    全面学习理解TLB(Translation Look-aside Buffer)地址变换高速缓存 前言: 本文学习思路是:存在缘由   --> 存在好处 --> 定义性质 --> 具 ...

  2. HQL语法

    HQL:Hibernate Query Language HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征. $下面介绍HQL语句的语法 1.from子句 from Person 表明从P ...

  3. 2.安装Nginx

    安装稳定版本的nginx 1.为CentOS系统安装yum仓库,创建文件 /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=htt ...

  4. 利用echarts highcharts 实现自定义地图 关系图效果 侧边3D柱形图饼图散点图

    github 地址:  https://https://github.com/Gengshaoxuan/medataMap github 地址:  https://https://github.com ...

  5. selenim之ActionChains(一)

    大家好,来介绍下,今天要分享的是小编学ActionChains的经验. 先来说一下今天要用到的方法: click(element=null)                               ...

  6. ASP.NET Core 2.0 MVC「远程」验证

    问题 如何 在ASP.NET Core MVC中使用[Remote]属性来实现模型验证 . 解 在 启动时, 为MVC配置中间件和服务. 添加一个模型. 添加一个控制器. 为jQuery添加一个Raz ...

  7. [转载] zookeeper应用——集中配置管理系统的实现

    转载自http://blog.csdn.net/huangfengxiao/article/details/8844239 1 场景描述 参考http://www.ibm.com/developerw ...

  8. Android TextView属性大全

    android:ems 设置TextView的宽度为N个字符的宽度. android:maxems 设置TextView的宽度为最长为N个字符的宽度.与ems同时使用时覆盖ems选项.android: ...

  9. javaweb-番外篇-Commons-FileUpload组件上传文件

    一.Commons-FileUpload简介 Commons-FileUpload组件 Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件 ...

  10. 转贴---Performance Counter(包含最全的Windows计数器解释)

    http://support.smartbear.com/viewarticle/55773/ 这个Article中介绍了一个新工具,TestComplete,把其中涉及到性能计数器的部分摘抄出来了. ...