AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle
https://beta.atcoder.jp/contests/abc075/tasks/abc075_d
题意:
给出坐标平面上n个点的坐标,要求找到一个面积最小的矩形使得这个矩形的边界加上内部的点的数量大于等于k。
思路:
由于坐标过大,所以离散化。
离散化之后用前缀和,但是Orz求前缀和的时候写错了。
枚举左下角和右上角的坐标,分别为(i,j)和(s,e)。
那么点的数量为sum[s][e] - sum[s][j-1] - sum[i-1][q] + sum[i-1][j-1],切记,切记,画图画图。
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <map>
using namespace std; struct node
{
int x,y;
} a[]; map<int,int> mpx,mpy;
map<int,int> invx,invy; int sum[][];
int b[][]; bool cmp1(node aa,node bb)
{
return aa.x < bb.x;
} bool cmp2(node aa,node bb)
{
return aa.y < bb.y;
} int main()
{
int n,k; scanf("%d%d",&n,&k); for (int i = ;i <= n;i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
} long long ans; sort(a+,a+n+,cmp1); for (int i = ;i <= n;i++)
{
invx[i] = a[i].x;
mpx[a[i].x] = i;
} long long dx = a[n].x - a[].x; sort(a+,a+n+,cmp2); for (int i = ;i <= n;i++)
{
invy[i] = a[i].y;
mpy[a[i].y] = i;
} long long dy = a[n].y - a[].y; ans = dx * dy; for (int i = ;i <= n;i++)
{
int x = a[i].x,y = a[i].y; b[mpx[x]][mpy[y]] = ;
} for (int i = ;i <= n;i++)
for (int j = ;j <= n;j++)
{
sum[i][j] = sum[i-][j] + sum[i][j-] - sum[i-][j-] + b[i][j];
} for (int i = ;i <= n;i++)
for (int j = ;j <= n;j++)
{
for (int s = i;s <= n;s++)
for (int q = j;q <= n;q++)
{
if (sum[s][q] - sum[s][j-] - sum[i-][q] + sum[i-][j-] >= k)
{
long long dx = invx[s] - invx[i];
long long dy = invy[q] - invy[j]; long long tmp = abs(dx) * abs(dy); ans = min(ans,tmp);
}
}
} printf("%lld\n",ans); return ;
}
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle的更多相关文章
- AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...
- AtCoder Beginner Contest 075 C bridge【图论求桥】
AtCoder Beginner Contest 075 C bridge 桥就是指图中这样的边,删除它以后整个图不连通.本题就是求桥个数的裸题. dfn[u]指在dfs中搜索到u节点的次序值,low ...
- [日常] AtCoder Beginner Contest 075 翻车实录
别问我为啥要写一篇ABC的游记... 周日打算CF开黑于是就打算先打打ABC找回手速... 进场秒掉 $A$ 和 $B$ , 小暴力一脸偷税 然后开 $C$ ...woc求桥? 怎么办啊我好像突然忘了 ...
- AtCoder Beginner Contest 075 C Bridge(割边)
求割边个数.Tarjan的板子.. #include <bits/stdc++.h> using namespace std; const int MAXN = 55; const int ...
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
随机推荐
- 从 MVC 到前后端分离
从 MVC 到前后端分离 1 理解 MVC MVC 是一种经典的设计模式,全名为 Model-View-Controller,即 模型-视图-控制器. 其中,模型 是用于封装数据的载体,例如,在 Ja ...
- linux No space left on device 由索引节点(inode)爆满引发500问题
inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取 ...
- js如何获取隐藏的元素的高度
首先,正常情况下,确保div是有高度的. <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- 听翁恺老师mooc笔记(11)--结构和函数
结构作为函数参数: 声明了一个结构就有了一种自定义的数据类型,这个数据类型和int.float.double一样,int等基本类型可以作为函数的参数,那么这种个自定义的结构类型也应该可以作为函数参数, ...
- 项目Alpha冲刺Day10
一.会议照片 二.项目进展 1.今日安排 解决前后台联调问题,完善全局的请求和路由跳转处理,添加空文件完善路由信息,优化界面跳转等待.完成个人信息和修改密码.修改前台数据组织和方法调用方式.解决登录和 ...
- Flask 扩展 HTTP认证
Restful API不保存状态,无法依赖Cookie及Session来保存用户信息,自然也无法使用Flask-Login扩展来实现用户认证.所以这里,我们就要介绍另一个扩展,Flask-HTTPAu ...
- 洛谷 U10783 名字被和谐了
https://www.luogu.org/problem/show?pid=U10783 题目背景 众所周知,我们称g是a的约数,当且仅当g是正数且a mod g = 0. 众所周知,若g既是a的约 ...
- python脚本,计算起点终点高程
import arcpy >>> import arcpy ... gd="D:/项目/shp/Pipe.gdb/ZK/GDPOINT" ... gx=" ...
- OO第一次阶段性总结
经过三次作业的历练之后终于来到了写博客这一周.回顾开学来的这一个月,令我印象最深刻也是最累的一门课就是OO了.虽然上学期学过一部分Java,但这学期开学就来的OO作业还是让我在第二周就开始熬夜了.不过 ...
- Python扩展模块——自动化(testlinkAPI的使用)
使用TESTLINKAPI首先要安装TestLink_API_Python_client-0.6.4(当前最新版本) 目前只使用到了通过api获取testlink中的自定义字段and值 url = ' ...