题意:就是给你n条直线,求这n条直线最多可以构成多少个矩形。

思路:把直线分类,分成水平的和竖直的,然后两两组合,看是否能构成矩形。枚举

 Memory: 692K		Time: 0MS
Language: G++ Result: Accepted
Source Code
#include <string.h>
#include <stdio.h>
#include <iostream> using namespace std; int sx,sy,ex,ey; struct c{
int sx;
int sy;
int ex;
int ey;
}s[105],h[105]; #define judge(x,y) h[y].sx<=s[x].ex&&h[y].ex>=s[x].ex&&s[x].sy<=h[y].ey&&s[x].ey>=h[y].ey
// 目的是判断这两条直线是否有交点。 int main()
{
int n,m,nums,ans,numh,tmp;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
nums=0,numh=0,ans=0;
for(int i=0;i<m;i++)
{
scanf("%d%d%d%d",&sx,&sy,&ex,&ey);
if(sx==ex)
{
if(sy>ey){tmp=sy;sy=ey;ey=tmp;}
s[nums].sx=sx;
s[nums].sy=sy;
s[nums].ex=ex;
s[nums].ey=ey;
nums++;
}
if(sy==ey) //对直线进行分类,且这里要注意,直线的起点的坐标不一定要大于终点的坐标。
{
if(sx>ex){tmp=sx;sx=ex;ex=tmp;}
h[numh].sx=sx;
h[numh].sy=sy;
h[numh].ex=ex;
h[numh].ey=ey;
numh++;
}
}
for(int i=0;i<nums;i++) //每两条直线来比较
for(int j=0;j<numh;j++)
if(judge(i,j))
for(int k=i+1;k<nums;k++)
if(judge(k,j))
for(int l=j+1;l<numh;l++)
if(judge(i,l))
if(judge(k,l))
ans++;
printf("%d\n",ans);
}
return ;
}

POJ 1693的更多相关文章

  1. 数长方形有多少个?POJ(1693)

    题目链接:http://poj.org/problem?id=1693 解题报告: 随机选两根横的,再找一下与这两根横线相交的竖线有多少根,m,那么就有(m-1)*m/2个长方形. #include ...

  2. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  3. (转)POJ题目分类

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  4. poj分类

    初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

  5. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

  6. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

  7. POJ题目分类(转)

    初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

  8. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  9. POJ题目(转)

    http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html 初期:一.基本算法:     (1)枚举. (poj1753,poj29 ...

随机推荐

  1. HTML 简介

    什么是HTML HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: Hyper Text Markup Language HTML 不是一种编程语言,而是一种标记语言 标记语言是一 ...

  2. js中,还真不了解 console

    参考链接: https://segmentfault.com/a/1190000000481884

  3. git diff

    git diff  工作区与暂存区的差别 git diff -cached / git diff -staged  暂存区与版本库的差别 git diff HEAD  工作区与版本库的差别 git d ...

  4. jqxTreeGrid

    基本TreeGrid样本 <!DOCTYPE html> <html lang="en"> <head> <title id=" ...

  5. Thinkphp 连接查询的使用

    方法一:使用table()方法 $tables = 'b_order ordert, b_busbid busbid'; $map['busbid.buscompanyid'] = 1; $map[' ...

  6. php/js互传cookie中文乱码的问题

    问题发现: 过去好好的,今天突然网页出现了问题. 在猎豹和IE都出现问题,在360浏览器就正常. 经过排错,最终发现:  js存储cookie,php读取的时候成了乱码 . 问题分析: 这是因为文字编 ...

  7. Owin是什么?

    OWIN的英文全称是Open Web Interface for .NET. 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口. 那Web接口是谁和谁之间的接口呢?是 ...

  8. bootstrapValidator.js 做表单验证

    有这样的一个场景,我们在提交form表单的时候 可能要做一些验证,比如判断是不是为空,电话的格式验证,邮箱的格式验证等等,手写起来也是可以得. 但是今天我介绍一个bootstrap插件简化开发.就是b ...

  9. Python 爬虫笔记、多线程、xml解析、基础笔记(不定时更新)

    1  Python学习网址:http://www.runoob.com/python/python-multithreading.html

  10. SQL Server 2012不支持从SQL Server 2000的备份进行还原

    错误: dbbackup failed: Unable to restore database 'ppt'Not valid backupThe database was backed up on a ...