解题报告+优化——试题 基础练习 矩形面积交——16行代码AC
励志用少的代码做高效的表达。
心路历程:
第一阶段:
最初想独立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相关推荐
- 蓝桥杯试题 基础练习 矩形面积交 BASIC-18 JAVA
目录 前言 试题 基础练习 矩形面积交 本题试题 前言 最近一直搞面试,很多写好的代码都懒得去发博客,现在补上,但是注释可能比较少,大家如果有问题请联系我 试题 基础练习 矩形面积交 资源限制 时间限 ...
- (~解题报告~)L1-016 查验身份证 (15分)(29行代码AC!)
立志用更少的代码做更优化的表达 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- 蓝桥杯 试题 基础练习 十六进制转十进制——5行代码AC
注意 1.别用int,溢出, %x输入,%d输出就行了 2.注意:%x,如果是小写x,那么该十六进制数中的字母都是小写,反之同理. 3.千万不要被开头"输入字符串"给蒙蔽,想的太复 ...
- (~解题报告~)L1-020 帅到没朋友 (20分)——25行代码AC
立志用更少的代码做更高效的表达 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋 ...
- 蓝桥杯 基础练习 矩形面积交
问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...
- [Java] 蓝桥杯BASIC-18 基础练习 矩形面积交
问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...
- 蓝桥杯 BASIC-18 基础练习 矩形面积交
问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...
- 解题报告——蓝桥杯 试题 基础练习 字符串对比——16行代码AC
励志用尽量少的代码做高效的表达 储备知识: 1.转化字母大小写→cctype头文件函数详解 注意点: 1.本题按要求4个if语句层层嵌套,一定要做到清晰.易懂,才能快速解题. 3.判断第三点时,用#i ...
- 解题报告——蓝桥 试题 基础练习 矩阵乘法——27行代码AC
储备知识: 矩阵: 矩阵的乘法: 也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和. 矩阵的n次幂同理.不过是自己乘自己. 本题注意 ...
最新文章
- Java堆内存溢出代码示例
- 西北大学计算机排行,世界排名领先,西北大学到底有多厉害?
- 软件需求模式阅读笔记之一
- 【割点】【割边】tarjan
- qt如何在TetxEdit设置背景色(可以设置行或列)
- 微信小程序开发部署发布可以在10分钟内完成
- 德国:认真是一种可怕的力量
- JAVA JNI中int和Integer完全不同
- ps界面为啥突然变大了_PS修图教程,如何把把照片变得更有质感
- pubg服务器维修时间段,pubg周几维护 | 手游网游页游攻略大全
- Vue+Vux实现登录
- cocos2dx android obb,cocos2dx 实现obb包读取 quick2.2.6
- ROG 冰刃 3 枪神 2 Plus 第二时间上手体验
- 工作常用的工具类JS+reset.css
- 财务分析和经营分析有什么区别和联系
- 欧姆龙c200he基本语言,欧姆龙C200HE-CPU11-E操作手册 - 广州凌控
- 普通人炒外汇如何入门?
- project2007的一些使用心得
- MP4转文字,视频转文本的方法
- html5游戏开发-弹幕+仿雷电小游戏demo
热门文章
- [七]RabbitMQ-客户端源码之AMQPImpl+Method
- 一些实用的编程模式 | Options模式
- 计算机基础- -认识磁盘
- MYSQL视图用户管理
- 【今晚七点半】:主编对话李宇翔——我所经历的“前端”开发
- 音视频技术开发周刊 | 213
- 【今晚7点半】:六款开源LL-HLS/LL-DASH播放器评测
- 【线上直播】Xilinx低延时、高质量实时视频服务技术实践
- nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
- centos安装zookeeper