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}\) ...
随机推荐
- 如何在MD(d)和MT(d)工程间正确分配和释放动态内存
MD(d)和MT(d) MD(d)和MT(d)是windows下VC开发的两个编译选项,表示程序的运行时库编译选项. /MT是"multithread, static version&quo ...
- Jenkins + Docker 持续集成
Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 安装部署Jenkins ...
- 一个shell脚本,让你的linux命令行酷炫起来
可调用如下函数达到echo出来带颜色的文字.._echo_error() { echo -ne "\033[31;1m $1\033[0m\n";}_echo_ok() { ech ...
- Algorithm --> Dijkstra和Floyd最短路径算法
Dijkstra算法 一.最短路径的最优子结构性质 该性质描述为:如果P(i,j)={Vi....Vk..Vs...Vj}是从顶点i到j的最短路径,k和s是这条路径上的一个中间顶点,那么P(k,s)必 ...
- java 二叉树排序
1 class BinaryTree{ 2 class Node{ 3 private Comparable data; 4 private Node left; 5 private Node rig ...
- 关于js中promise的面试题。
核心点promise在生命周期内有三种状态,分别是pending,fulfilled或rejected,状体改变只能是 pending-fulfilled,或者pending-rejected.而且状 ...
- CentOS 6.5 通过命令行安装发送邮件
1.安装sendmail: yum install sendmail 2.安装mailx: yum install mailx -y 3.编辑发送的配置文件: vi /etc/mail.rc #在最后 ...
- js浮点数运算的坑,多少同学有碰到过?
javascript中的数字都是双精度的浮点数. JavaScript中的整数并不是一个独立的数据类型,而是浮点数的一个子集. 浮点数的坑我们看下面的例子 在浏览器的console 控制台上我们分别进 ...
- lua 二维数组创建
local arr= {} for i=1, 4 do arr[i] = {} end 使用时可以直接使用arr[i][j]
- JavaScript(第十八天)【DOM基础】
学习要点: 1.DOM介绍 2.查找元素 3.DOM节点 4.节点操作 DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘 ...