专栏文章
题解:P12326 [蓝桥杯 2023 省 Java B] 矩形总面积
P12326题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipiexen
- 此快照首次捕获于
- 2025/12/03 12:31 3 个月前
- 此快照最后确认于
- 2025/12/03 12:31 3 个月前
题解:P12326 [蓝桥杯 2023 省 Java B] 矩形总面积
思路:
先将两个矩阵的面积算出来,分别是 , ,再将重叠部分的面积算出来,再将它减去。
code:
CPP#include<bits/stdc++.h>
using namespace std;
int x,y,x2,y2,x3,y3,x4,y4;
int main(){
cin>>x>>y>>x2>>y2>>x3>>y3>>x4>>y4;
int sum1=(y2-y)*(x2-x);//求R1总面积
int sum2=(y4-y3)*(x4-x3);//求R2总面积
//计算重叠区域的坐标
int cx1=max(x,x3),cy1=max(y,y3);
int cx2=min(x2,x4),cy2=min(y2,y4);
//计算重叠区域的面积
int csum=0;
if(cx1<cx2&&cy1<cy2){
csum=(cx2-cx1)*(cy2-cy1);
}
cout<<sum1+sum2-csum;
}
然后就75分了,是因为数据比较大,爆int了,我们可以使用足够大的数据类型来存储面积计算结果,避免爆掉。
code:
CPP#include<bits/stdc++.h>
#define int long long //宏定义,将int变成long long的效果
using namespace std;
int x,y,x2,y2,x3,y3,x4,y4;
signed main(){//无符号整型
cin>>x>>y>>x2>>y2>>x3>>y3>>x4>>y4;
int sum1=(y2-y)*(x2-x);//求R1总面积
int sum2=(y4-y3)*(x4-x3);//求R2总面积
//计算重叠区域的坐标
int cx1=max(x,x3),cy1=max(y,y3);
int cx2=min(x2,x4),cy2=min(y2,y4);
//计算重叠区域的面积
int csum=0;
if(cx1<cx2&&cy1<cy2){
csum=(cx2-cx1)*(cy2-cy1);
}
cout<<sum1+sum2-csum;
}
希望管理员大大能让我过
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...