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 最大矩形面积相关推荐

  1. SDUT 2401 最大矩形面积

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401 话说GSB 出的这个题确实不大好想,给定 ...

  2. 语音计算矩形面积_LeetCode85-最大矩形

    今天在制作书签的时候 突然想到了一个问题 如果要送给未来的女朋友一个书签 上面该写些什么话 哈哈哈哈哈哈哈哈哈 The Spring is coming! 想了一会儿,觉得这句话最合适 To xxx: ...

  3. 编写矩形类 计算矩形面积

    编写矩形类 计算矩形面积 public class juxing {int a;int b; juxing(int a,int b){System.out.println("矩形面积s=&q ...

  4. 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交

    题目 1471:矩形面积交 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 平面上有两个矩形 ...

  5. [学习笔记]矩形面积并

    常用的套路 各种合法矩形限制.合法区间对的限制,都可以转化为矩形面积并 如:省选模拟赛第十四轮.[ZJOI2019]语言 还有直接矩形:(HDU 1542) Atlantis 矩形面积并--扫描线.C ...

  6. 线段树求矩形面积并 扫描线+离散化

    顾名思义,扫描法就是用一根想象中的线扫过所有矩形,在写代码的过程中,这根线很重要.方向的话,可以左右扫,也可以上下扫.方法是一样的,这里我用的是由下向上的扫描法. 如上图所示,坐标系内有两个矩形.位置 ...

  7. python【蓝桥杯vip练习题库】BASIC-18 矩形面积交(线段交)

    试题 基础练习 矩形面积交 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你 ...

  8. 【HDU 1542】Atlantis 矩形面积并(线段树,扫描法)

    [题目] Atlantis Problem Description There are several ancient Greek texts that contain descriptions of ...

  9. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)

    链接:线段树求矩形面积并 扫描线+离散化 1.给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 2.看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同. 求面积时,用被覆 ...

最新文章

  1. echarts 图标高度自适应_echarts图表盒子大小变化后,图表无法自适应
  2. C#[抽象类,接口]
  3. JVM调优总结(三)-基本垃圾回收算法
  4. docker中的容器和镜像
  5. OpenCV中的随机数
  6. ORB-SLAM2 地图加载2
  7. java王者荣耀英雄代码_王者荣耀英雄代码大全
  8. SQL Server数据库入门
  9. 给Ubuntu配置静态IP地址
  10. 亚马逊抛出“下一代贸易链”整合解决方案:中国跨境电商如何借道转型?
  11. 宁波市第32届中小学生程序设计竞赛(初中组) 母鸡下蛋
  12. 物联网网线POE供电主控设计方案
  13. Linux下minikube启动失败(It seems like the kubelet isn't running or healthy)
  14. Sizzle.filter [ 源码分析 ]
  15. 分享25个很棒的网页设计教程和资源网站
  16. java jni dll路径_Java中Jni调用DLL文件试验
  17. 人立方 关系搜索 微软发布的人-关系搜索引擎
  18. python操作Excel、Word、PDF集合大全
  19. 【drawio笔记】将图表导出为更高分辨率的 PNG 图像
  20. 神经网络的5个应用场景,神经网络算法应用领域

热门文章

  1. stream map方法_Java Stream中map和flatMap方法
  2. 三下乡辅导孩子计算机知识,【青春“三下乡”】普及家庭教育知识,共促孩子健康成长...
  3. str.split() 与 str.split(‘ ‘)区别
  4. win10 动态磁盘 linux,win10系统动态磁盘改为基本磁盘的方法
  5. www服务器提供的第一个信息页面,第14章WWW服务
  6. 从底层剖析i++和++i的区别与相同点
  7. msflexgrid允许大选择_工程中要用多大的电线电缆?一文教你怎么算
  8. 计算并显示HOG直方图
  9. 计算机系统结构 网易云课堂,计算机系统结构 (三) CPU及其结构分析
  10. oracle 10.2 64位,Oracle 10.2.0.5 x64升级到11.2.0.3 x64