HDOJ 2056 Rectangles_luminous11的博客-程序员秘密

技术标签: 模拟  HDOJ  

题意:给出四个二维坐标,分别为两个矩阵的两条对角线的顶点,求两个矩阵重合的面积

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2056

思路:对每个矩阵分别排序,比较x与y的差值即可

注意点:无


以下为AC代码:

Run ID Submit Time Judge Status Pro.ID Exe.Time Exe.Memory Code Len. Language Author
12676493 2015-01-10 12:22:19 Accepted 2056 46MS 1268K 1623 B G++ luminous11

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <deque>
#include <list>
#include <cctype>
#include <algorithm>
#include <climits>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#define ll long long
#define ull unsigned long long
#define all(x) (x).begin(), (x).end()
#define clr(a, v) memset( a , v , sizeof(a) )
#define pb push_back
#define mp make_pair
#define read(f) freopen(f, "r", stdin)
#define write(f) freopen(f, "w", stdout)
using namespace std;
const double pi = acos(-1);

struct node{
    double a, b, c, d;
    node(){}
    void add( double a, double b, double c, double d ){ this->a = a;this->b = b;this->c = c;this->d = d; }
    void change( void ){
        if( a > c ) swap ( a, c );
        if( b > d ) swap ( b, d );
        return;
    }
}matrix_1, matrix_2;

double calc (){
    double x = min ( matrix_1.c, matrix_2.c ) - max ( matrix_1.a, matrix_2.a );
    double y = min ( matrix_1.d, matrix_2.d ) - max ( matrix_1.b, matrix_2.b );
    if ( x < 0.00001 || y < 0.00001 ){
        return 0.0;
    }
    else{
        return x * y;
    }
}

int main()
{
    ios::sync_with_stdio( false );
    double a, b, c, d;
    while ( cin >> a >> b >> c >> d ){
        matrix_1.add ( a, b, c, d );
        cin >> a >> b >> c >> d;
        matrix_2.add ( a, b, c, d );
        matrix_1.change();
        matrix_2.change();
        cout << fixed << setprecision(2) << calc() << endl;
    }
    return 0;
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/luminous11/article/details/42582055

智能推荐

ICLR2020全析解读:华人学者占据60%,谷歌再次领跑!(附最新高引华人榜单)..._深度学习技术前沿的博客-程序员秘密

关注上方“深度学习技术前沿”,选择“星标公众号”,资源干货,第一时间送达!来源:学术头条ICLR 全称为 “International Conference on Learning Re...

vim快速移动_二两酒馆的博客-程序员秘密

移动基本移动1、方向键:上下左右可以实现光标移动 2、vim特殊的移动方式 命令 光标动作 h 左移一列 l 右移一列 j 下移一行 k 上移一行基于单词移动 命令 光标动作 w 正向移动到下一单词的开头 b 反向移动到当前单词/上一单词的开头 e 正向移动到当前单词/下一单词的结尾 ge 反向移动到上一单词的结尾如下

vue中全选按钮的操作_vue全选按钮_热心市民小胖纸的博客-程序员秘密

我们要实现的目的就是一个简单的全选按钮,但是当下方得有一个元素取消选中状态时,全选状态取消,下方的数据都选中时,全选自动选中,再加上一个功能为当下面没有数据,全选按钮不能选择。解决的思路肯定还是监听数据变化,外加上一条控制可点击不能点击的变量; 直接上代码:div class=&quot;table_list&quot;&amp;gt; &amp;lt;table class=&quot;&quot; id=&quot;table_list&quot; v...

Linux基础知识之用户和用户组以及 Linux 权限管理_linux用户组、用户权限管理_yimenglin的博客-程序员秘密

已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字。这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看有木有,一提起这几个名词马上脑海中总是升腾起无限的崇拜有木有!今天就硬着头皮捯饬捯饬这几个概念,希望能有所收获。  1.从 /etc/passwd 说起  前面的基本命令学习中,我们介绍了使用 p...

随便推点

TONGHUA - Darren_weixin_34026276的博客-程序员秘密

偶然听到的一首。Darren貌似是一个美国爵士作家。钟爱中文。不敢相信。发现他的 星期五见面 也不错。专辑图片很配。给优衣库打了广告233http://www.xiami.com/song/1776229838转载于:https://www.cnblogs.com/pityhero233/p/7249135.html...

pynq-z2 初识(五) PYNQ-Z2的基本框架和设计内容初探_pynqz2 ddr3_豆沙粽子好吃嘛!的博客-程序员秘密

啊,瞎动手试完板子的功能以后,可以看出板子肯定是没得毛病的,接下来从头开始研究一下吧。基本框架Zynq是基于双核ARM Cortex-A9处理器(称为处理系统或PS-Processing System)的SOC,集成了FPGA结构(称为可编程逻辑或PL-)。PS子系统包括许多专用的外设(内存控制器、USB、Uart、IIC、SPI等),并且可以在PL覆盖中通过附加的硬件IP进行扩展。而对于现在手上的这块PYNQ-Z2而言,系统包括ARM Cortex-A9 PS和三个标准GPIO IP,用于连接板载

Toad 使用快速入门_CS_eulota的博客-程序员秘密

Toad 使用快速入门                                      目录一.Toad功能综述二.系统需求三.安装指南四.快速入门1. Schema browser的用法简介2. SQL Editor的使用介绍3. Procedure Editor的用法介绍4. 如何进行PLSQL的debug5. 如何使用SQLab Xpert优化SQL6. 如何使用SQL M

【集训队作业2018】【XSY3372】取石子 DP_weixin_30876945的博客-程序员秘密

题目大意  有 \(n\) 堆石子,初始时第 \(i\) 堆石子有 \(a_i\) 个。  你每次取石子会取 \(k\) 个。在你取完一堆石子之后才能在下一堆中取石子。  游戏会进行 \(t\) 轮,每轮会发生以下事件:你可以进行任意次取石子操作。每堆的石子个数会增加,具体的,第 \(i\) 堆的式子个数会增加 \(b_i\) 个。  每一堆式子有个上限 \(c_i\),如果在某个...

Java基于优先队列的贪心算法_Leetcode刷题之优先队列_weixin_39713538的博客-程序员秘密

这篇文章是十几天前整理的,明天要上班了,今天就发出来吧。继续今天的刷题之旅,今天这篇文章就看三道题目,主要用于介绍BFS与优先队列的使用。103.Binary Tree Zigzag Level Order Traversal题目:按照Z行打印每一层二叉树的节点。举例:Given binary tree[3,9,20,null,null,15,7]3/\920/\思路:这是一个典型的B...

推荐文章

热门文章

相关标签