数长方形有多少个?POJ(1693)
题目链接: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)的更多相关文章
- 暴力枚举-数长方形(hdu5258)
数长方形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 5258 数长方形 离散化
数长方形 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5258 Des ...
- HDU 5258 数长方形【离散化+暴力】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=5258 数长方形 Time Limit: 2000/1000 MS (Java/Others) Me ...
- Project Euler 85 :Counting rectangles 数长方形
Counting rectangles By counting carefully it can be seen that a rectangular grid measuring 3 by 2 co ...
- COJ 0036 数数happy有多少个?
数数happy有多少个? 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 图图是个爱动脑子.观察能力很强的好学生.近期他正学英语 ...
- 数集合有多少个TOJ(2469)
题目链接:http://acm.tju.edu.cn/toj/showp2469.html 感觉这个题目有点问题,算了不管他了,反正A了. 这里要注意的是求这个集合有多少种,那么就是要剔除重复数后,再 ...
- 数黑格有多少个,模拟题,POJ(1656)
题目链接:http://poj.org/problem?id=1656 #include <stdio.h> #include <iostream> #include < ...
- POJ 1693
题意:就是给你n条直线,求这n条直线最多可以构成多少个矩形. 思路:把直线分类,分成水平的和竖直的,然后两两组合,看是否能构成矩形.枚举 Memory: 692K Time: 0MS Language ...
- 【POJ】【1704】Georgia and Bob
组合游戏 Nim游戏的一个变形 题解请看金海峰的博客 以下为引用: 分析:我们把棋子按位置升序排列后,从后往前把他们两两绑定成一对.如果总个数是奇数,就把最前面一个和边界(位置为0)绑定. 在同一对棋 ...
随机推荐
- 2.Servlet(一)
1.Servlet的编写.访问过程: (1)编写部署Servlet程序: 编写源文件->编译类文件->部署程序->运行->Servlet处理请求,返回响应. (2)Eclips ...
- spring @Transactional事务失效
不开事务几种情形 ① @Transactional写在了private方法上 org.springframework.transaction.interceptor.AbstractFallbackT ...
- U盘中病毒了
往U盘里拷东西的时候突然发现一个后缀名为exe图标却是文件夹的图标的文件.大概二三百K 按类型排序之后发现好几个这样的文件,大小都是一模一样的,名字分别跟我U盘里原先的文件夹对应,原本的文件夹都被设置 ...
- d题
#include<iostream>#include<algorithm>using namespace std;int a[200005];int b[200005];int ...
- Thinkphp3.2邮件发送
第一步:加入这两个文件 第二部:在common的function中添加代码 function think_send_mail($to, $name, $subject = '', $body = '' ...
- oracle命令查看表结构及表索引
--查看oracle数据库的单个表结构 select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual; 括号里面有两个参数,第一个参数是我们 ...
- JAVA中的for循环
在Java程序中,要“逐一处理”――或者说,“遍历”――某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当 然,用其它种类的循环也不是不可以,只是不知道是因为for这个 ...
- 单片机的图形UI
https://www.st.com/content/st_com/en/stm32-graphic-user-interface.html TouchGFX Designer:如今免费,资源占用10 ...
- vs2012配置使用entity framework 6
项目中使用mysql作为数据库,想快速地实现一些数据服务,为了节省开发时间,提升开发效率,性能不是考虑的重点,所以选择了使用ORM框架:Entity Framework.指定了DB的table des ...
- VM虚拟机安装centos7
一 安装centos7 下面地址下载基础版 CentOS-7-x86_64-Minimal-1810.iso 镜像 918M http://isoredirect.centos.org/centos ...