51nod1302 矩形面积交
#include<bits/stdc++.h>
const int N=,inf=0x3f3f3f3f;
typedef long long i64;
int n,pp,mx=inf,my=inf,sd=;
int min(int a,int b){return a<b?a:b;}
void mins(int&a,int b){if(a>b)a=b;}
void maxs(i64&a,i64 b){if(a<b)a=b;}
struct pos{
int x,y;
void R(){
scanf("%d%d",&x,&y);
if(x>y)std::swap(x,y);
mins(mx,x);mins(my,y);
}
bool operator<(const pos&w)const{return x<w.x;}
}ps[N],pmx,pmy;
struct cmpy1{bool operator()(const pos&a,const pos&b){return a.y>b.y;}};
struct cmpy2{bool operator()(const pos&a,const pos&b){return a.y<b.y;}};
i64 cal1(){
i64 s=;
if(!sd)sd=,std::sort(ps+,ps+pp+);
std::priority_queue<pos,std::vector<pos>,cmpy1>q;
for(int i=pp;i;--i){
q.push(ps[i]);
if(q.size()>n)q.pop();
if(q.size()==n)maxs(s,q.top().y*i64(ps[i].x));
}
return s+i64(mx)*my;
}
int ys[N];
i64 cal2(){
i64 s=;
if(!sd)sd=,std::sort(ps+,ps+pp+);
ys[]=inf;
int y0=pmx.y;
for(int i=;i<=pp;++i)ys[i]=ys[i-],mins(ys[i],ps[i].y);
std::priority_queue<pos,std::vector<pos>,cmpy2>q;
for(int i=pp;i;--i){
q.push(ps[i]);
if(q.size()>n-)mins(y0,q.top().y),q.pop();
if(q.size()==n-)maxs(s,i64(min(ps[i].x,pmy.x))*my+i64(min(ys[i-],y0))*mx);
}
return s;
}
int main(){
scanf("%d",&n);
pp=n*;
for(int i=;i<=pp;++i)ps[i].R();
for(int i=;i<=pp;++i)if(ps[i].x==mx){pmx=ps[i];ps[i]=ps[pp--];break;}
if(pmx.y==my)return printf("%lld",cal1()),;
for(int i=;i<=pp;++i)if(ps[i].y==my){pmy=ps[i];ps[i]=ps[pp--];break;}
return printf("%lld",std::max(cal1(),cal2())),;
}
51nod1302 矩形面积交的更多相关文章
- 2019计蒜之道初赛4 B. 腾讯益智小游戏—矩形面积交(简单)(矩形交集)
B. 腾讯益智小游戏—矩形面积交(简单) 1000ms 262144K 腾讯游戏开发了一款全新的编程类益智小游戏,最新推出的一个小游戏题目是关于矩形面积交的.聪明的你能解出来吗?看下面的题目接招吧 ...
- HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)
链接:线段树求矩形面积并 扫描线+离散化 1.给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 2.看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同. 求面积时,用被覆 ...
- C语言 · 矩形面积交
问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. 在每行中 ...
- Java实现 蓝桥杯VIP基础练习 矩形面积交
描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入 输入仅包含两行,每行描述一个矩形. 在每行中,给出矩 ...
- 2015 UESTC 数据结构专题E题 秋实大哥与家 线段树扫描线求矩形面积交
E - 秋实大哥与家 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 De ...
- 【hdu1255】线段树求矩形面积交
题意大概就是上图这个样子.<=100组测试数据,每组<=1000个矩形. 题解: 这个问题怎么解决..做了上一题矩形面积并应该就会了.. 对于每个节点维护3个值: cnt:该节点所代表的这 ...
- Codeforces Round #524 (Div. 2)C 二维坐标系求俩矩形面积交
题:https://codeforces.com/contest/1080/problem/C 题意:给n*m的二维坐标系,每个位置(xi,yi)都表示一个方格,(1,1)的位置是白色,整个坐标系黑白 ...
- Gym-100935I Farm 计算几何 圆和矩形面积交
题面 题意:就是给你一个圆,和你一个矩形,求面积并,且 保证是一种情况:三角剖分后 一个点在圆内 两个在圆外 题解:可以直接上圆与凸多边形交的板子,也可以由这题实际情况,面积等于扇形减两个三角形 #i ...
- hdu1255(线段树——矩形面积交)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 题意:求N个矩形中,求被覆盖至少俩次的面积和 分析:覆盖两次即col[rt]>=2就好.一 ...
随机推荐
- python学习之路02
1.python的数据类型有:Number String List Truple Sets Dictionary . 数字类型:int float bool complex 2.不可变数据:数字 字符 ...
- centos安装jdk1.8
一.安装Java环境 1. 删除系统预装的opensdk或其他sdk 用命令 java -version 验证是否存在sdk 2. 下载Java JDK约定的版本 版本:Java SE Develop ...
- 开发工具-Eclipse
1.Eclipse的视窗和视图概述 - A:视窗 每一个基本的窗体被称为视窗 * PackageExplorer 显示项目结构,包,类,及资源 * Outline 显示类的结构,方便查找,识别, ...
- Blender快捷键设置
Ubuntu16.04 系统快捷键 Alt + RMB 是移动当前窗口的系统快捷键. Blender下,Loop Silection使用的快捷键就是这个Alt + RMB. 如果不能修改系统的设置,就 ...
- springMvc前后台传值各种情况
本文转载至:https://blog.csdn.net/pangliang_csdn/article/details/52486787 以后自述...
- 工作记录 - OBB的解决方案
之前关于OBB的内容: Android上使用native IO 最近工作中的问题笔记 工作记录[续] android OBB 自从用了Java来mount OBB, 再也没有遇到挂载的问题. 但最近在 ...
- [工作记录] NDK: AKEYCODE_DEL not notified
https://code.google.com/p/android/issues/detail?id=42904#makechanges 我们游戏的输入系统是自己渲染(通过跨平台渲染接口)的. 首先有 ...
- 【转】浅谈Nginx负载均衡与F5的区别
前言 笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Nginx再进行处理,静态内容直接访问 ...
- zabbix自定义触发器进行监控
给某一主机创建触发器 触发器属性,其中centos是主机名,也就是你监控的那台主机的名字,可以点击bp2,查看该主机的hostname 检测该触发器 在该主机下可以看到刚创建的触发器 最后我们给该主机 ...
- S老师 Top-Down RPG Starter Kit 学习
character creation using UnityEngine; using System.Collections; public class CharacterCreation : Mon ...