遇到的困难(c++)

今天在做题的时候遇到了一些我不太能解决的困难,请大家们帮我解决一下

#include 
using namespace std; 
struct NODE {
    int X1,X2,Y1,Y2;//X coordinate and y coordinate
    int width,lengh;//The length and width of a rectangle
};
int cnt=0;
struct NODE a[1024];
int n;//numbers of the coordinates
int main(int args,char **argc) {
    scanf("%d",&n);//input n
    for(int i=0;iscanf("%d %d %d %d",&a[i].X1,&a[i].Y1,&a[i].X2,&a[i].Y2);//input the coordinates
        a[i].width=a[i].Y2-a[i].Y1;// Rectangular width
        a[i].lengh=a[i].X2-a[i].X1;//Rectangular length
        cnt+=a[i].lengh*a[i].width; 
    }
    printf("%d",cnt);
    return 0;
}
#if 0
input
2
2 2 9 5
6 1 12 9
output
60

#endif


img

估计是要考虑矩形重叠的部分,只涂一次

我个人建议,因为数据量不大,可以考虑定义一个500x500的数组,初始化为0,然后把所有输出的区域都标记为1
最后统计所有为1的有多少。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/218749
  • 这篇博客你也可以参考下:数据结构:删除数组中的元素(c++)链表形式
  • 除此之外, 这篇博客: C++实现超全的基础排序算法都在这里啦|十大基础排序中的 希尔排序 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在直接插入排序的提高版, 我们知道直接插入排序在直接插入排序在基本有序和待排序的记录个数较少时,效率较高。

    基本思想:
    先将整个待排序纪录序列分割成若干子序列,分别进行直接插入排序,待整个序列中的纪录“基本有序”时,再对全体记录进行一次直接插入排序。
    在这里插入图片描述

    • 希尔排序算法,特点:
      1)缩小增量
      2)多遍插入序列
    • 希尔排序思路
      1.定义增量序列Dk,从大到小选择序列。
      2.对每个增量序列Dk,进行“Dk-间隔”插入序列(k=M,M-1,…1)
    • 希尔排序特点
      • 一次移动,移动位置较大,跳跃式的接近排序后的最终位置
      • 最后一次只需要少量移动
      • 增量序列必须是递减的,最后一个必须是1
      • 增量序列应该是互质的
    //希尔排序 
    void ShellSort(Sqlist &L, int dlat[] ,int t){      //dlat[]增量序列 
    	// 按增量序列dlta[0...t-1]对顺序表L作希尔排序 
    	for(k=0; k<t;++k)  //t趟 
    		ShellInsert(L,Dlta[k]); //一趟增量为dlta[k]的插入排序 
    }//ShellSort 
    void ShellInsert(SqList &L, int dk){
    	
    	for(i=dk+1;i <= L.length; ++i){
    		if(r[i].key < r[i-dk].key){
    			r[0] = r[i];
    			for(j=i-dk; j>0 &&(r[0].key < r[j].key); j = j-dk)
    				r[j+dk] = r[j];
    			r[j+dk] = r[0];	
    		}
    	}
    }
    

    希尔排序算法效率与增量序列的取值有关
    在这里插入图片描述

    时间复杂度是n和d的函数:O(n²)~O(1.6n¹˙²⁵)
    空间复杂度为O(1)
    是一种不稳定的排序方法

    • 最后一个增值量必须为1,无除了1之外的公因子
    • 不宜在链式存储结构上实现
  • 您还可以看一下 夏曹俊老师的C++ 设计模式原理与实战大全-架构师需备课程课程中的 项目完成优化界面添加图标和按钮小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^