NightStriker 2022-06-04 11:29 采纳率: 60%
浏览 22
已结题

小明爱矩形c++ 求查错

rt

原题:

给定n个矩形,这些矩形可能叠加,也可能不叠加,现在给你一个数字k,问有多少对矩阵的重叠面积大于k。小明很贪玩,所以小明现在希望你可以帮助他解决这个问题。

输入
第一行输入一个n(n<=1000),表示矩形的个数
接下来n行,每行四个数字,分别表示每个矩形左下角的坐标和右上角的坐标。(0<=坐标范围<=10000)
接着输入一个Q,表示询问的个数
接下来Q行,每行一个数字k(0<=k<=100000000),表示询问有多少对矩阵的重叠面积大于k
输出
对于每个询问输出一个整数。
输入样例
2
1 2 2 3
1 2 2 4
1
0
输出样例
1
本人代码:

#include<bits/stdc++.h>
using namespace std;
struct node{
    int x_1, y_1;
    int x_2, y_2;
} N[1010];
int M[1000010];
int solve(int i, int j){
    int x_1 = max(N[i].x_1, N[j].x_1);
    int y_1 = min(N[i].y_1, N[j].y_1);
    int x_2 = max(N[i].x_2, N[j].x_2);
    int y_2 = min(N[i].y_2, N[j].y_2);
    return max(y_1-x_1,0) * (0,y_2-x_2);
}
int main(){
    int n;
    cin>> n;
    for(int i = 0; i < n; i++)
        cin>> N[i].x_1 >> N[i].y_2 >> N[i].x_2 >> N[i].y_2;
        int t = 0;
    for(int i = 0; i < n -1; i++)
        for(int j = i + 1; j < n; j++)
            M[t++] = solve(i, j);
            
    sort(M, M + t);
    int Q, k;
    cin>> Q;
    while(Q--){
        cin>> k;
        int r = upper_bound(M, M + t, k) - M;
        cout<< t -r << endl;
    }
    return 0;
}

此代码输出为0
好多次都WA了,想破脑袋也没想出来,求指点错误

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月12日
    • 创建了问题 6月4日

    悬赏问题

    • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
    • ¥50 vue组件中无法正确接收并处理axios请求
    • ¥15 隐藏系统界面pdf的打印、下载按钮
    • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
    • ¥15 基于pso参数优化的LightGBM分类模型
    • ¥15 安装Paddleocr时报错无法解决
    • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
    • ¥50 分布式追踪trace异常问题
    • ¥15 人在外地出差,速帮一点点
    • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改