c语言区间合并题目找错误

Python016

c语言区间合并题目找错误,第1张

我觉得排序还是有必要的,按ai排序,排好以后如果ai-b(i-1)>1,那就说明区间不连续.按这个逻辑把你的代码改了下:

哦,不对,应该是ai和最大的bi的差:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int n, min, max, i, j, m=10000

scanf("%d", &n)

struct p {

int x, y

} t

p* sz=new p[n]  //c++不支持变长数组,用了new

for (i=0 i<n i++) {

scanf("%d %d", &sz[i].x, &sz[i].y)

}

for (i=0 i<n-1 i++) {

for (j=i+1 j<=n-1 j++) {

if (sz[i].x>sz[j].x) {

t=sz[j]

sz[j]=sz[i]

sz[i]=t

}

}

}

//======================

max=sz[0].y

for (i=1 i<n ++i)

{

if (sz[i-1].y>max)

max=sz[i-1].y

if (sz[i].x-max>1)

{

printf("no\n")

delete[] sz

return 0

}

}

//=============================

printf("%d %d", sz[0].x, sz[n-1].y)

delete[] sz

return 0

}

1、将闭区间[0,1]等分成n份,在每一个小区间上直接计算梯形面积(上下底为(x^3)/3.0),并合并求和; 2、将闭区间[0,1]等分成(2 * n)份,重复上述操作; 3、上述两步的结果做差,如果绝对值小于,如:1e-6,那么输出第二步的结果;否则继续加倍等分区间重复操作