sdut 2401 最大矩形面积
1http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401 /* 2 最大矩形面积,把边界点加上 3 从左往右 处理一遍; 4 再从上往下处理一遍; 5 */ 6 7 #include<stdio.h> 8 #define maxn 20000 9 #include<cmath> 10 #include<algorithm> 11 using namespace std; 12 int min(int x,int y) 13 { 14 if(x<y)return x; 15 else return y; 16 } 17 int max(int x,int y) 18 { 19 if(x>y)return x; 20 else return y; 21 } 22 struct node 23 { 24 int x; 25 int y; 26 }p[maxn]; 27 int n,l,w; 28 int cmpx(node a,node b) 29 { 30 if(a.x!=b.x)return a.x<b.x; 31 else return a.y<b.y; 32 } 33 int cmpy(node a,node b) 34 { 35 if(a.y!=b.y)return a.y<b.y; 36 else return a.x<b.x; 37 } 38 int LR() 39 { 40 int i,j; 41 int top,down; 42 int ans=-1; 43 for(i=0;i<n-1;i++) 44 { 45 top=w;down=0; 46 for(j=i+1;j<n;j++) 47 { 48 if(p[i].x!=p[j].x) 49 ans=max(ans,fabs(p[i].x-p[j].x)*(top-down)); 50 51 if(p[j].y>p[i].y)top=min(top,p[j].y); 52 else 53 down=max(down,p[j].y); 54 } 55 } 56 return ans; 57 } 58 int UD() 59 { 60 int i,j; 61 int L,R; 62 int ans=-1; 63 for(i=0;i<n-1;i++) 64 { 65 L=0;R=l; 66 for(j=i+1;j<n;j++) 67 { 68 if(p[i].y!=p[j].y) 69 ans=max(ans,fabs(p[i].y-p[j].y)*(R-L)); 70 71 if(p[j].x>p[i].x)R=min(R,p[j].x); 72 else 73 L=max(L,p[j].x); 74 } 75 } 76 return ans; 77 } 78 int main() 79 { 80 int T,i; 81 scanf("%d",&T); 82 while(T--) 83 { 84 scanf("%d%d",&l,&w); 85 scanf("%d",&n); 86 if(n==0) 87 { 88 printf("%d\n",l*w); 89 continue; 90 } 91 p[0].x=0;//加上边界点 92 p[0].y=0; 93 p[1].x=l; 94 p[1].y=w; 95 n=n+2; 96 for(i=2;i<n;i++) 97 { 98 scanf("%d%d",&p[i].x,&p[i].y); 99 } 100 sort(p,p+n,cmpx); 101 int s1=LR(); 102 sort(p,p+n,cmpy); 103 int s2=UD(); 104 printf("%d\n",max(s1,s2)); 105 } 106 }
转载于:https://www.cnblogs.com/acSzz/archive/2012/05/06/2485845.html
sdut 2401 最大矩形面积相关推荐
- SDUT 2401 最大矩形面积
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401 话说GSB 出的这个题确实不大好想,给定 ...
- 语音计算矩形面积_LeetCode85-最大矩形
今天在制作书签的时候 突然想到了一个问题 如果要送给未来的女朋友一个书签 上面该写些什么话 哈哈哈哈哈哈哈哈哈 The Spring is coming! 想了一会儿,觉得这句话最合适 To xxx: ...
- 编写矩形类 计算矩形面积
编写矩形类 计算矩形面积 public class juxing {int a;int b; juxing(int a,int b){System.out.println("矩形面积s=&q ...
- 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交
题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...
- [学习笔记]矩形面积并
常用的套路 各种合法矩形限制.合法区间对的限制,都可以转化为矩形面积并 如:省选模拟赛第十四轮.[ZJOI2019]语言 还有直接矩形:(HDU 1542) Atlantis 矩形面积并--扫描线.C ...
- 线段树求矩形面积并 扫描线+离散化
顾名思义,扫描法就是用一根想象中的线扫过所有矩形,在写代码的过程中,这根线很重要.方向的话,可以左右扫,也可以上下扫.方法是一样的,这里我用的是由下向上的扫描法. 如上图所示,坐标系内有两个矩形.位置 ...
- python【蓝桥杯vip练习题库】BASIC-18 矩形面积交(线段交)
试题 基础练习 矩形面积交 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你 ...
- 【HDU 1542】Atlantis 矩形面积并(线段树,扫描法)
[题目] Atlantis Problem Description There are several ancient Greek texts that contain descriptions of ...
- HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)
链接:线段树求矩形面积并 扫描线+离散化 1.给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 2.看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同. 求面积时,用被覆 ...
最新文章
- echarts 图标高度自适应_echarts图表盒子大小变化后,图表无法自适应
- C#[抽象类,接口]
- JVM调优总结(三)-基本垃圾回收算法
- docker中的容器和镜像
- OpenCV中的随机数
- ORB-SLAM2 地图加载2
- java王者荣耀英雄代码_王者荣耀英雄代码大全
- SQL Server数据库入门
- 给Ubuntu配置静态IP地址
- 亚马逊抛出“下一代贸易链”整合解决方案:中国跨境电商如何借道转型?
- 宁波市第32届中小学生程序设计竞赛(初中组) 母鸡下蛋
- 物联网网线POE供电主控设计方案
- Linux下minikube启动失败(It seems like the kubelet isn't running or healthy)
- Sizzle.filter [ 源码分析 ]
- 分享25个很棒的网页设计教程和资源网站
- java jni dll路径_Java中Jni调用DLL文件试验
- 人立方 关系搜索 微软发布的人-关系搜索引擎
- python操作Excel、Word、PDF集合大全
- 【drawio笔记】将图表导出为更高分辨率的 PNG 图像
- 神经网络的5个应用场景,神经网络算法应用领域
热门文章
- stream map方法_Java Stream中map和flatMap方法
- 三下乡辅导孩子计算机知识,【青春“三下乡”】普及家庭教育知识,共促孩子健康成长...
- str.split() 与 str.split(‘ ‘)区别
- win10 动态磁盘 linux,win10系统动态磁盘改为基本磁盘的方法
- www服务器提供的第一个信息页面,第14章WWW服务
- 从底层剖析i++和++i的区别与相同点
- msflexgrid允许大选择_工程中要用多大的电线电缆?一文教你怎么算
- 计算并显示HOG直方图
- 计算机系统结构 网易云课堂,计算机系统结构 (三) CPU及其结构分析
- oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64