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日

    悬赏问题

    • ¥15 如何让企业微信机器人实现消息汇总整合
    • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
    • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
    • ¥15 TLE9879QXA40 电机驱动
    • ¥20 对于工程问题的非线性数学模型进行线性化
    • ¥15 Mirare PLUS 进行密钥认证?(详解)
    • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
    • ¥20 想用ollama做一个自己的AI数据库
    • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
    • ¥15 请问怎么才能复现这样的图呀