我就是个垃圾……一道水题能写这么长时间……


首先看到题就想到了二维前缀和+二分边长,但地图边长10000,得离散化。

于是这个离散化就把我搞疯了,淦。

这反映出现在基础知识还是不牢固,相当不牢固。

复杂度不会算,淦。(但应该不会超过\(O(C^2\log N)\)

具体看代码吧……

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct P{int x,y;}a[505];
int c,n,dx,dy,xx[10005],yy[10005];
int x[505],y[505],s[505][505];
bool check(int k)
{
for(int i=xx[k];i<=dx;++i) //如果边长是k,那么从k的不同的数开始找起
for(int j=yy[k];j<=dy;++j)
{
int x0=0,y0=0;
if(x[i]-k>=0) x0=xx[x[i]-k]; //这里是一个映射原坐标的判断,这样的对应应该是没问题的
if(y[j]-k>=0) y0=yy[y[j]-k];
if(s[i][j]-s[x0][j]-s[i][y0]+s[x0][y0]>=c) return 1;
}
return 0;
}
int main()
{
scanf("%d%d",&c,&n);
for(int i=1;i<=n;++i)
{
scanf("%d%d",&a[i].x,&a[i].y);
xx[a[i].x]++,yy[a[i].y]++; //这是开了个桶
}
for(int i=1;i<=10000;++i)
{
if(xx[i]) x[++dx]=i; //如果这个桶有值,那么就把它扔进一个映射的数组里
xx[i]=dx; //可以发现x与xx是互为逆运算的,也就是x[i]表示第i个不同的数是几,
//xx[i]表示i这个数是第几个不同的数
if(yy[i]) y[++dy]=i;
yy[i]=dy;
}
for(int i=1;i<=n;++i) s[xx[a[i].x]][yy[a[i].y]]++; //我们用编号来做前缀和
for(int i=1;i<=dx;++i)
for(int j=1;j<=dy;++j)
s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
int l=1,r=10000,ans;
while(l<=r)
{
int mid=l+r>>1;
if(check(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
printf("%d",ans);
return 0;
}

最新文章

  1. ASP.NET sync over async(异步中同步,什么鬼?)
  2. 使用 python 收集获取 Linux 系统主机信息
  3. ASP.NET 系列:单元测试
  4. async/await 异步编程(转载)
  5. Java 操作 Redis 高级
  6. KindEditor ---富编辑器
  7. M2M
  8. SVG矢量图--爱心
  9. [转载] ubuntu开机直接进入命令行模式
  10. find in linux
  11. 看懂SqlServer查询计划
  12. Memcached管理
  13. android:background=&quot;@drawable/home_tab_bg&quot;
  14. MATLAB仿真中连续和离散的控制器有何区别?
  15. html中meta标签及用法理解
  16. js-canvas(基本用法)
  17. Vue + Element UI 实现权限管理系统 前端篇(十五):嵌套外部网页
  18. 利用StopWatch类监控Java代码执行时间并分析性能
  19. UE4开发安卓遇到的坑
  20. JQuery 获取除某指定对象外的其他对象 :not() 与.not()

热门文章

  1. NX二次开发-克隆操作
  2. Qt中的多线程与线程池浅析+实例
  3. Effective Fusion Factor in FPN for Tiny Object Detection
  4. 广州某小公司:ThreadLocal面试
  5. RobotFramework + Python 自动化入门 三 (Web自动化)
  6. js(if else)分数等级查询
  7. LevelDB学习笔记 (1):初识LevelDB
  8. NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用
  9. Docker:DockerFile详解与实例
  10. 24 shell 管道命令与过滤器