题目链接:http://poj.org/problem?id=1693

解题报告:

随机选两根横的,再找一下与这两根横线相交的竖线有多少根,m,那么就有(m-1)*m/2个长方形。

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h> using namespace std; const int maxn = ; struct line {
int x[];
int y[];
}row[maxn],col[maxn]; int n; int main()
{
int Case;
cin>>Case;
int r,c;
while(Case--)
{
r=c=;
int ans=;
cin>>n;
for(int i=;i<n;i++)
{
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if(y1==y2) ///水平
{
row[r].x[]=min(x1,x2);
row[r].x[]=max(x1,x2); row[r].y[]=y1;
row[r++].y[]=y2;
}
else {
///垂直
col[c].y[]=min(y1,y2);
col[c].y[]=max(y1,y2); col[c].x[]=col[c].x[]=x1;
c++;
}
} int maxr,minr,maxc,minc; int tmp;
for(int i=;i<r-;i++)
{
for(int j=i+;j<r;j++)
{
if(row[i].x[]<row[j].x[]||row[i].y[]==row[j].y[])
continue; tmp=;
minr=max(row[i].x[],row[j].x[]);
maxr=min(row[i].x[],row[j].x[]); maxc=max(row[i].y[],row[j].y[]);
minc=min(row[i].y[],row[j].y[]); for(int k=;k<c;k++)
{
if(col[k].x[]>=minr&&col[k].x[]<=maxr&&col[k].y[]<=minc&&col[k].y[]>=maxc)
tmp++;
}
ans+=(tmp-)*tmp/;
}
}
printf("%d\n",ans);
}
}

数长方形有多少个?POJ(1693)的更多相关文章

  1. 暴力枚举-数长方形(hdu5258)

    数长方形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. hdu 5258 数长方形 离散化

    数长方形 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5258 Des ...

  3. HDU 5258 数长方形【离散化+暴力】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=5258 数长方形 Time Limit: 2000/1000 MS (Java/Others)    Me ...

  4. Project Euler 85 :Counting rectangles 数长方形

    Counting rectangles By counting carefully it can be seen that a rectangular grid measuring 3 by 2 co ...

  5. COJ 0036 数数happy有多少个?

    数数happy有多少个? 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 图图是个爱动脑子.观察能力很强的好学生.近期他正学英语 ...

  6. 数集合有多少个TOJ(2469)

    题目链接:http://acm.tju.edu.cn/toj/showp2469.html 感觉这个题目有点问题,算了不管他了,反正A了. 这里要注意的是求这个集合有多少种,那么就是要剔除重复数后,再 ...

  7. 数黑格有多少个,模拟题,POJ(1656)

    题目链接:http://poj.org/problem?id=1656 #include <stdio.h> #include <iostream> #include < ...

  8. POJ 1693

    题意:就是给你n条直线,求这n条直线最多可以构成多少个矩形. 思路:把直线分类,分成水平的和竖直的,然后两两组合,看是否能构成矩形.枚举 Memory: 692K Time: 0MS Language ...

  9. 【POJ】【1704】Georgia and Bob

    组合游戏 Nim游戏的一个变形 题解请看金海峰的博客 以下为引用: 分析:我们把棋子按位置升序排列后,从后往前把他们两两绑定成一对.如果总个数是奇数,就把最前面一个和边界(位置为0)绑定. 在同一对棋 ...

随机推荐

  1. thinkPHP5.0验证器自定义验证规则

    自定义验证规则 protected $rule = [ 'views' => 'require|number|checkviews:0',//checkviews为自定义验证规则,0是传过去的规 ...

  2. shell 0学习

    例一:列出/home 文件夹下的所有文件和目录的详细资料,可以使用如下命令:  ls -a -l /home   ls -al /home 例二:列出当前目录中所有以”d”开头的文件目录的详细内容,可 ...

  3. MAC环境下idea:maven+Spring+Dubbo+Zookeeper简单工程搭建

    : 一:安装软件:tomcatZookeeperDubbo+admin 二:工程: 总工程  API    Pom.xml:不用引用任何东西  Provider    Pom.xml:要denpend ...

  4. Factorization Machines with libFM 论文阅读

    Factorization Machines with libFM https://pan.baidu.com/s/1aAyhHGNSrZQFDfoz8VsHIQ libFM网站:http://www ...

  5. 3DSMAX安装失败如何完全卸载

    安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).AUTODESK系列软件着实令人头疼,有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  6. Django重新整理2

    Auth认证: 1.分配路由和创建视图函数 2.在视图函数中引用Django为我们提供的用户认证组建Auth 3.直接进行判断: def login(request): if request.meth ...

  7. MATLAB特殊矩阵以及矩阵转置

    特殊矩阵 通用特殊矩阵 zeros函数:产生全0矩阵,即零矩阵. ones函数:产生....1矩阵,即幺矩阵. eye函数:产生对角线为1的矩阵,当矩阵是方正时,得到单位矩阵. rand函数:产生(0 ...

  8. 初识contiki(2.7版本)

    一个偶然的机会,我接触到了contiki这个家伙. Contiki 是一个开源的.高度可移植的.采用 C 语言开发的非常小型的嵌入式操作系统,针对小内存微控制器设计,适用于联网嵌入式系统和无线传感器网 ...

  9. SQL语句增删改字段、表、修改默认值

    收集转载: 1.修改字段,默认值 .修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 ad ...

  10. NIM(1) 一排石头的游戏

    最近在实习面试过程中,一个朋友遇到了该问题,从简单到复杂的思路如下,希望能给遇到相同问题的朋友一些启发和帮助.(内容来源网络和<编程之美>) 1.问题1 100个苹果 桌上有100个苹果, ...