题目链接: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. asp.net AD 域验证

    1.获取环境变量 string strAuthUser = request.ServerVariables["AUTH_USER"] 以上这行代码是用来获取当前用户的登录名 2.I ...

  2. 8.JSP基础

    1.Servlet与JSP关系 JSP工作原理: 一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet JSP引擎使用javac把转换成的servlet的源文件编译成相应的 ...

  3. 风险识别工具 - 影响图(Influence Diagram)

    原文地址:http://blog.csdn.net/jameszhou/archive/2007/06/24/1664494.aspx PMBOK(2004 3rd 英) P248关于风险识别的图形技 ...

  4. Java日志组件1---Jdk自带Logger(java.util.logging.Logger)

    最近在看日志的一些东西,发现利用JDK自带的log也可以简单的实现日志的输出,将日志写入文件的过程记录如下: 1.新建LogUtil.Java( 里面写了几个静态方法,为log设置等级.添加log控制 ...

  5. 数据库版本管理工具flyway

    引入flyway_core  jar包 java 代码实现 public class FlywayMigration { @Resource private DataSource dataSource ...

  6. AndroidStudio项目提交到github最详细步骤

    在使用studio开发的项目过程中有时候我们想将项目发布到github上,以前都是用一种比较麻烦的方式(cmd)进行提交,最近发现studio其实是自带这种功能的,终于可以摆脱命令行了. 因为自己也没 ...

  7. WSGI学习系列Paste

    Paste has been under development for a while, and has lots of code in it. The code is largely decoup ...

  8. LeetCode 704.二分查找(C++)

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: num ...

  9. 我使用的brackets插件

    livereload atom dark theme autoprefixer auto save files on window blur beautify brackets file icons ...

  10. HDU 4365——Palindrome graph——————【规律+快速幂】

    Palindrome graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...