您的位置:首页 > 其它

zoj 1139 || poj 1468 Rectangles

2011-04-28 20:51 302 查看
判断一个矩形是否在另一个矩形里,直接判断四个点是否在矩形里即可。暴力。。



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <queue>
#include <stack>
#include <math.h>

using namespace std;

const int MAX = 5010;
const double eps = 1e-6;
struct recangle{ double lx,ly,rx,ry;};//左下角,右上角 
recangle r[MAX];
bool flag[MAX];
bool dy(double x,double y)	{	return x > y + eps;}	// x > y 
bool xy(double x,double y)	{	return x < y - eps;}	// x < y 
bool dyd(double x,double y)	{ 	return x > y - eps;}	// x >= y 
bool xyd(double x,double y)	{	return x < y + eps;} 	// x <= y 
bool dd(double x,double y) 	{	return fabs( x - y ) < eps;}  // x == y

bool r_in_r(recangle a,recangle b)
{
	if( dyd(a.lx,b.lx) && xyd(a.rx,b.rx) && dyd(a.ly,b.ly) && xyd(a.ry,b.ry) )
		return true;
	return false;
}
int main()
{
	int n;
	while( ~scanf("%d",&n) )
	{
		memset(flag,false,sizeof(flag));
		for(int i=0; i<n; i++)
			scanf("%lf %lf %lf %lf",&r[i].lx,&r[i].rx,&r[i].ly,&r[i].ry);
		for(int i=0; i<n; i++)
			for(int k=0; k<n; k++)
				if( i != k && r_in_r(r[i],r[k]) )
					flag[i] = true;
		int sum = 0;
		for(int i=0; i<n; i++)
			if( flag[i] )
				sum++;
		printf("%d/n",sum);
	}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: