当前位置: 首页> 娱乐> 八卦 > 项目经理_丹阳网站设计公司_百度推广没有效果怎么办_发布平台有哪些

项目经理_丹阳网站设计公司_百度推广没有效果怎么办_发布平台有哪些

时间:2025/8/17 2:00:08来源:https://blog.csdn.net/Caspiannn/article/details/142163988 浏览次数:0次
项目经理_丹阳网站设计公司_百度推广没有效果怎么办_发布平台有哪些

田地丈量

计算机软件能力认证考试系统

本题可以学到:重合部分矩形面积求法——对角坐标法

这道题杀疯了。我还以为只是一个简单模拟,但是实际上如果用正常几何方式思考的话,有超多情况,做成分类极其麻烦。我想过用点作为分类的条件,那么情况只有三个,一个点在矩形内部,还有两个点在矩形内部,四个点都在。但是发现点作为观测点非常不可信,因为如果四个点都不在矩形内,真的就不会有交集了吗?也不是,如果划的矩形超级大,那么重合的面积就是a*b,但是如果按照我之前的思路的话,就是没有交集。

下面来说说正确思路:求重合部分矩形的对角坐标(下面定义为 lx,ly,rx,ry)。为什么要求这个呢?假设我们存在这个重合矩形,并且知道了重合部分的对角坐标,那么长和宽就可以秒出,计算面积也就水到渠成。怎么求这个呢?我们先假设存在,那么这个重合矩形的左下角,最少是(0,0),所以 lx、ly>=0吧?而最大是多少呢?因为是左下,所以相对而言是要挑最小的,可以画图,简单看出,最大是x1,y1。同理,右上角也是,最大最大是(a,b),所以 rx<=a,ry<=b。 如果不存在这个矩形呢?不妨先按上述方法试试,试了之后就爽了,因为发现如果不存在,这两个点会在同一水平线上,所以rx=lx,计算出来的面积=0,我们可以不用分类,直接用上述方法。

AC:

#include <iostream>
using namespace std;
//好妙的一道题,说实话,几何题我一直不怎么在行。这道题的灵魂在于求出两个矩形相交部分的对角坐标 
//如果相交,那当然会有这个坐标,如果不相交,那经过上述方法计算出来的坐标在一个水平线上,根据这个算出来的面积为0 
#define ll long long
int n,a,b;
ll ans=0; int main()
{cin>>n>>a>>b;int x1,x2,y1,y2;	// 2>1 int leftx,lefty,rightx,righty;	//设置相交矩形左右(其实是左下和右上)坐标 while(n--){cin>>x1>>y1>>x2>>y2;leftx=max(0,x1);lefty=max(0,y1);rightx=min(a,x2);righty=min(b,y2);//如果没有交集,leftx-rightx=0 int w=max(0,rightx-leftx);	//右上坐标都大于左下 int h=max(0,righty-lefty);ans+=h*w;}cout<<ans;return 0;} 

关键字:项目经理_丹阳网站设计公司_百度推广没有效果怎么办_发布平台有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: