首页 > sdut 2401 最大矩形面积

sdut 2401 最大矩形面积

      1http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401



/* 2 最大矩形面积,把边界点加上 3 从左往右 处理一遍; 4 再从上往下处理一遍; 5 */ 6 7 #include 8 #define maxn 20000 9 #include 10 #include 11 using namespace std; 12 int min(int x,int y) 13 { 14 if(xreturn 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;i1;i++) 44 { 45 top=w;down=0; 46 for(j=i+1;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;i1;i++) 64 { 65 L=0;R=l; 66 for(j=i+1;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 ",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) 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 ",max(s1,s2)); 105 } 106 }

转载于:https://www.cnblogs.com/acSzz/archive/2012/05/06/2485845.html

更多相关:

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • /*判断屏幕宽高比是否为16:9*/ function isScreen16to9() {return window.screen.height / window.screen.width === 9 / 16; }...

  • /*关闭、刷新、跳转、离开当前网页前提示*/ onbeforeunload = function () {return false; };  ...

  • let json = {/**判断JSON格式*/ isJSON: function (str) {if (typeof str == "string") {try {var obj = JSON.parse(str);if (typeof obj == "object" && obj) {return true;} else {...

  •   项目结构   index.js //必须要安装否则就别想运行了❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ //npm i body-parser -D & cnpm i express & cnpm i node-xlsx & cnp...

  • 一、递归 函数    为什么要有函数,提高代码的可读性,避免重复的代码,提高代码的复用性      在函数中能用return的不要print 1、递归的最大深度997 def foo(n):print(n)n+=1foo(n) foo(1) 递归的最大深度 2、修改递归的最大深度     由此我们可以看出,未报错之前能看到的最大数...

  • #include #include #include #include #include #include #include

  • 题目:表示数值的字符串 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、"5e2"、"-123"、"3.1416"、"0123"及"-1E-16"都表示数值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。 解题: 数值错误的形式有多种多样,但是正确的...

  • 加法伺候  //超过20位数值相加---------------------------------------- function bigNumAdd(a, b) {if (!(typeof a === "string" && typeof b === "string")) return console.log("传入参数必...

  • 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程...

  • 简单record 一下 #include // 'struct sockaddr_in' #include #include // 'struct ifreq' and 'struct if_nameindex' #include #inc...