恭喜你来到了未被开垦的大陆

恭喜你来到了未被开垦的冰雪❄️王国。。。

 

这块天地还没有被江雪完成开垦,但是说不定哪一天江雪就过来这里建(刷)设(完)了呢?

所以说。。。敬(有)请(生)期(之)待(年)???

“哈哈哈哈哈哈哈哈哈哈哈哈哈哈。。。。”,江雪笑到。

仿佛之前他也是这么笑的。

 

可以先计算出每块田地的面积,再判断其是否与目标矩形有交集,如果有交集则计算交集面积,最后将所有有交集的田地面积相加即可。 具体实现步骤如下: 1.读入已存在的田地坐标和目标矩形坐标。 2.计算每块田地的面积。 3.判断每块田地是否与目标矩形有交集,若有则计算交集面积。 4.将所有有交集的田地面积相加,得到总面积。 以下是C++代码实现: ```c++ #include <iostream> #include <algorithm> using namespace std; int main() { int n; cin >> n; // 输入已存在的田地数目 int x1[n], y1[n], x2[n], y2[n]; for (int i = 0; i < n; i++) { cin >> x1[i] >> y1[i] >> x2[i] >> y2[i]; // 输入每块田地的左下角和右上角坐标 } int x, y, w, h; cin >> x >> y >> w >> h; // 输入目标矩形的左下角和右上角坐标 long long area = 0; // 总面积 for (int i = 0; i < n; i++) { // 计算每块田地的面积 long long cur_area = 1LL * (x2[i] - x1[i]) * (y2[i] - y1[i]); // 判断田地是否与目标矩形有交集 if (x2[i] <= x || x1[i] >= x + w || y2[i] <= y || y1[i] >= y + h) { continue; // 没有交集,跳过 } int overlap_x1 = max(x1[i], x); // 计算交集的左下角坐标 int overlap_y1 = max(y1[i], y); int overlap_x2 = min(x2[i], x + w); // 计算交集的右上角坐标 int overlap_y2 = min(y2[i], y + h); long long overlap_area = 1LL * (overlap_x2 - overlap_x1) * (overlap_y2 - overlap_y1); // 计算交集面积 area += overlap_area; // 累加有交集的田地面积 } cout << area << endl; // 输出总面积 return 0; } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁星蓝雨

如果觉得文章不错,可以请喝咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值