励志用少的代码做高效的表达。


心路历程:

第一阶段:

最初想独立AC出这题来着,但考虑来考虑去,总觉得没想到点子上,缺点什么似的。于是搜网,果不其然,是一种全新的算法“线段交”。当然这是简化版的。 下面说一下判断线段交的方法;
线段交:
先判断两个矩形是否相交,如果不相交直接输出0。反之,则输出4个横坐标中中间两个横坐标值之差, 4个纵坐标中中间两个纵坐标值之差。(好有道理啊有木有)

好大一坨知识!学习了!

第二阶段:

明确思路后,对题的重心就从解出变成了优化。 最开始定义了八个变量,分别表示(x1,y1)、(x2,y2)、(xi,yi)、(xj,yj),但后来发现这样判断大小太麻烦,索性将所有值存入数组,用algorithm中sort对数组进行排序操作,十分方便、整洁。
传送门→懒癌的福音——algorithm头文件函数全集。

注意点:

1、别忘了计算范围是实数,最开始搞成了整数,看测试用例时才发现。
2、输入时第一个坐标可能是矩形四个点中任意一点,第二个坐标是其对角线。也就是说,需要排序或判断后,将小的值放在前面,再去运算
3、第九行代码的意思是:若矩形1中x坐标最小值大于等于矩形2中x坐标最大值 或 矩形1中x坐标最大值小于等于矩形2中x坐标最小值…

代码:

#include<bits/stdc++.h>
using namespace std;
double x[4], y[4];
int main() {for(int  i = 0; i < 4; i += 2)cin >> x[i] >> y[i] >> x[i+1] >> y[i+ 1];sort(x, x+2);  sort(x+2, x+4);sort(y, y+2);  sort(y+2, y+4);if(x[0] >= x[3] || x[1] <= x[2] || y[0] >= y[3] || y[1] <= y[2]){printf("0.00\n");}else{sort(x, x+4);  sort(y, y+4);printf("%.2lf\n", (x[2] - x[1]) * (y[2] - y[1]) );}return 0;
}

日拱一卒,功不唐捐。

解题报告+优化——试题 基础练习 矩形面积交——16行代码AC相关推荐

  1. 蓝桥杯试题 基础练习 矩形面积交 BASIC-18 JAVA

    目录 前言 试题 基础练习 矩形面积交 本题试题 前言 最近一直搞面试,很多写好的代码都懒得去发博客,现在补上,但是注释可能比较少,大家如果有问题请联系我 试题 基础练习 矩形面积交 资源限制 时间限 ...

  2. (~解题报告~)L1-016 查验身份证 (15分)(29行代码AC!)

    立志用更少的代码做更优化的表达 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下:   首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  3. 蓝桥杯 试题 基础练习 十六进制转十进制——5行代码AC

    注意 1.别用int,溢出, %x输入,%d输出就行了 2.注意:%x,如果是小写x,那么该十六进制数中的字母都是小写,反之同理. 3.千万不要被开头"输入字符串"给蒙蔽,想的太复 ...

  4. (~解题报告~)L1-020 帅到没朋友 (20分)——25行代码AC

    立志用更少的代码做更高效的表达 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋 ...

  5. 蓝桥杯 基础练习 矩形面积交

    问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...

  6. [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交

    问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...

  7. 蓝桥杯 BASIC-18 基础练习 矩形面积交

    问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...

  8. 解题报告——蓝桥杯 试题 基础练习 字符串对比——16行代码AC

    励志用尽量少的代码做高效的表达 储备知识: 1.转化字母大小写→cctype头文件函数详解 注意点: 1.本题按要求4个if语句层层嵌套,一定要做到清晰.易懂,才能快速解题. 3.判断第三点时,用#i ...

  9. 解题报告——蓝桥 试题 基础练习 矩阵乘法——27行代码AC

    储备知识: 矩阵: 矩阵的乘法: 也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和. 矩阵的n次幂同理.不过是自己乘自己. 本题注意 ...

最新文章

  1. Java堆内存溢出代码示例
  2. 西北大学计算机排行,世界排名领先,西北大学到底有多厉害?
  3. 软件需求模式阅读笔记之一
  4. 【割点】【割边】tarjan
  5. qt如何在TetxEdit设置背景色(可以设置行或列)
  6. 微信小程序开发部署发布可以在10分钟内完成
  7. 德国:认真是一种可怕的力量
  8. JAVA JNI中int和Integer完全不同
  9. ps界面为啥突然变大了_PS修图教程,如何把把照片变得更有质感
  10. pubg服务器维修时间段,pubg周几维护 | 手游网游页游攻略大全
  11. Vue+Vux实现登录
  12. cocos2dx android obb,cocos2dx 实现obb包读取 quick2.2.6
  13. ROG 冰刃 3 枪神 2 Plus 第二时间上手体验
  14. 工作常用的工具类JS+reset.css
  15. 财务分析和经营分析有什么区别和联系
  16. 欧姆龙c200he基本语言,欧姆龙C200HE-CPU11-E操作手册 - 广州凌控
  17. 普通人炒外汇如何入门?
  18. project2007的一些使用心得
  19. MP4转文字,视频转文本的方法
  20. html5游戏开发-弹幕+仿雷电小游戏demo

热门文章

  1. [七]RabbitMQ-客户端源码之AMQPImpl+Method
  2. 一些实用的编程模式 | Options模式
  3. 计算机基础- -认识磁盘
  4. MYSQL视图用户管理
  5. 【今晚七点半】:主编对话李宇翔——我所经历的“前端”开发
  6. 音视频技术开发周刊 | 213
  7. 【今晚7点半】:六款开源LL-HLS/LL-DASH播放器评测
  8. 【线上直播】Xilinx低延时、高质量实时视频服务技术实践
  9. nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
  10. centos安装zookeeper