包含在其他区间内的区间

原创 2012年03月25日 14:05:46

这是《C语言名题精选百则》中的5.18,就是给出一组区间,计算出所有被包含的区间的个数。

标准答案就不贴了,有兴趣去参考原书吧。我只把我的答案贴一下。


#include<stdio.h>

typedef struct contain
{
	int left;
	int right;
}contain;

int whichContain(contain data[],int len);
void sort(contain data[],int len);
void swap(contain *p,contain *q);

int main()
{
	contain data[6] = {{1,3},{0,2},{2,3},{3,4},{1,6},{0,5}};
	printf("%d\n",whichContain(data,sizeof(data) / sizeof(data[0])));
	return 0;
}

int whichContain(contain data[],int len)
{
	int i;
	int count = 0;
	int j;

	sort(data,len);
//	for(j = 0;j < len;j++)
//		printf("(%d,%d)",data[j].left,data[j].right);
//	printf("\n");

	for(i = 0,j = i + 1;i < len;)
	{
		while(data[i].right > data[j].right)
		{
			//printf("data[i].right : %d and data[i + 1].right : %d\n",data[i].right,data[i + 1].right);
			j++;
			count++;
		}
		i = j;
		j = i + 1;
	}
	return count;
}

void sort(contain data[],int len)
{
	int i,j;
	
	for(i = 0;i < len;i++)
	{
		for(j = 0;j < len - i;j++)
		{
			if(data[j].left > data[j + 1].left)
				swap(&data[j],&data[j + 1]);
			else if(data[j].left == data[j + 1].left)
			{
				if(data[j].right < data[j + 1].right)
					swap(&data[j],&data[j + 1]);
			}
		}
	}
}

void swap(contain *p,contain *q)
{
	contain temp = *p;
	*p = *q;
	*q = temp;
}

(数位DP 1.1)hdu 2089 不要62(求一个区间[a,b]中不包含4,64的数的个数)

题目:不要62Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm...

uvalive 3905 扫描线:求包含区间最多的点

关键词:扫描线、求包含区间做多的点 题意:已知流星进入矩形内,会被照相机拍到。已知流星初始位置和运动方向。已知矩形框的位置。求最多可以同时拍到多少颗流星?(到达边框不计入内)...

在给定的区间范围内找出所有素数能构成的最大的等差数列(即等差数列包含的素数个数最多)

最近在练习华为OJ,进过4个小时奋斗和各位前辈的指点,60分侥幸通过测试。 需要特别考虑:数列长度相等时,要输出公差大的。(也许最后一项最大的也行) 代码如下,请各位大侠指点下,为何只能到了60分...

xcode工作区间xxxx.xcworkspace不包含xxxx.xcodeproj

Pods正常显示,但xxxx.xcodeproj显示红色,不包含xxxx.xcodeproj并且无法操作。尝试把Podfile、Podfile.lock、xxxx.xcworkspace和Pods文件...

进度条多个区间控件

  • 2017年12月01日 11:11
  • 49B
  • 下载

数据区间处理

  • 2017年02月23日 14:11
  • 8KB
  • 下载

区间树简单实现(interval_tree)

interval_tree.cpp /* 区间树(interval tree)是一种对动态集合进行维护的扩张红黑树,因此可在实验二红黑树的基础上进行扩张。 */ #include #incl...

工作区间工具 virgo

  • 2017年01月10日 17:41
  • 7KB
  • 下载

区间估计及置信度的模拟实验

  • 2016年01月25日 20:57
  • 468KB
  • 下载

二项分布比例的置信区间计算

之前一网友遇到类似问题,特查了相关文献,归结一下方法有二。 1.根据各方法的计算公式进行编辑公式,data 步就可以搞定。相关文献有:《A Comparison of Binomial Propor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:包含在其他区间内的区间
举报原因:
原因补充:

(最多只允许输入30个字)