• zzulioj--1816--矩形(好题数学)


    1816: 矩形

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 88  Solved: 24

    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 20 0 1 1 0 0 2 2-2 -2 2 2 1 -3 3 -1

    Sample Output

    16419

    HINT

    Source

    郑大第九届校赛正式赛


    #include<stdio.h>
    #include<string.h>
    #include<queue>
    #include<math.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		double x1,y1,x2,x3,x4,y2,y3,y4;
    		double x[4],y[4];
    		scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
    		x[0]=x1;x[1]=x2;x[2]=x3;x[3]=x4;
    	    y[0]=y1;y[1]=y2;y[2]=y3;y[3]=y4;
    	    sort(x,x+4);
    		sort(y,y+4); 
    		double s=fabs((x2-x1)*(y1-y2)+fabs(x3-x4)*(y3-y4));
    		double l=fabs(x2-x1)+fabs(x3-x4)-fabs(x[3]-x[0]);
    		double h=fabs(y1-y2)+fabs(y3-y4)-fabs(y[3]-y[0]);
    		double s1=l*h;
    		if(l<=0||h<=0)//判断两个矩形是否相离 
    		printf("%.0lf
    ",s);
    		else
    		printf("%.0lf
    ",s-s1);
    	}
    	return 0;
    }


  • 相关阅读:
    SYBASE 日志空间满了的几种情况
    命令行对jar包的解压和压缩
    SYBASE 常用 sp_configure
    SYBASE 删除数据库
    【转】从RGB色转为灰度色算法
    C# 指针操作图像 细化处理
    C# 指针操作图像 二值化处理
    C# 对象转换为byte[] ,byte[]还原对象
    javascript 简单加解密
    windows 2003 企业版 下载地址+序列号
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273635.html
Copyright © 2020-2023  润新知