bzoj 2338 [HNOI2011]数矩形

来源:互联网 发布:创意摆件 知乎 编辑:程序博客网 时间:2024/06/01 08:13
bzoj <wbr>2338 <wbr>[HNOI2011]数矩形


一开始只考虑了边和坐标轴平行的矩形。。。先离散,在枚举两点做对角线,用boolean数组判断另外两点。。。

然后猛然想到各种斜矩形。果断重打。。。

还是利用矩形对角线平分的性质,求出每个点对连线的中点,排序,找矩形。

一开始2B地开了实数数组记录中点,然后发现其实除2操作根本毫无意义。。。而且实数的快排判断各种WS。。

改之。。。

然后发现对角线平分的不止有矩形还有平行四边形。。。又开了一个长度数组记录对角线长度。。。

A之。。。

以上就是被这道计几基础题完虐的过程。。。我会说因为数组少开个0还RE了一次么。。。

各种弱啊。。。



AC CODE

program hnoi_2011_day2_rectangle;
var xx,yy:array[1..1500] of int64;
   x,y,d:array[1..2250000] of int64;
   p1,p2:array[1..2250000] of longint;
   n,i,j,tot:longint;
   ans,tmp:int64;
//=========================================================================
procedure qsort(l,r:longint);
var tt,k1,k2:int64;
   i,j,t2:longint;
begin
  k1:=x[(l+r) shr 1]; k2:=y[(l+r) shr 1];
  i:=l; j:=r;
  repeat
    while(x[i]
    while(x[j]>k1) or ((x[j]=k1) and (y[j]>k2)) do dec(j);
    if i<=jthen
    begin
     tt:=x[i]; x[i]:=x[j]; x[j]:=tt;
     tt:=y[i]; y[i]:=y[j]; y[j]:=tt;
     tt:=d[i]; d[i]:=d[j];d[j]:=tt;   //记录对角线长度。
     t2:=p1[i]; p1[i]:=p1[j]; p1[j]:=t2;
     t2:=p2[i]; p2[i]:=p2[j]; p2[j]:=t2;
     inc(i); dec(j);
    end;
  until i>j;
  if l
  if i
end;
//=========================================================================
begin
  assign(input,'1.in'); reset(input);
  assign(output,'1.out'); rewrite(output);
  readln(n); tot:=0;
  for i:=1 to n do readln(xx[i],yy[i]);
  for i:=1 to n-1 do
    for j:=i+1to n do
    begininc(tot);
     p1[tot]:=i; p2[tot]:=j;
     d[tot]:=sqr(xx[i]-xx[j])+sqr(yy[i]-yy[j]);
     x[tot]:=xx[i]+xx[j];   //记录中点的时候直接加,不用除、、
     y[tot]:=yy[i]+yy[j];
    end;qsort(1,tot); ans:=0;
  for i:=1 to tot-1 do
  begin
    for j:=i+1to tot do
     if x[i]=x[j] then 
     begin
       if y[i]<>y[j] then continue;
       if d[i]<>d[j] then continue;
       tmp:=(xx[p1[i]]-xx[p2[i]])*(yy[p1[j]]-yy[p2[i]])-(xx[p1[j]]-xx[p2[i]])*(yy[p1[i]]-yy[p2[i]]); //叉积还是很好用的、、
       if tmp<0 then tmp:=-tmp; tmp:=tmp;
       if tmp>ans then ans:=tmp;
     end else break;
  end; writeln(ans);
end.

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新换手机支付宝怎么办 ih5点击按钮跳转页面怎么办 sap点安装程序没反应怎么办 淘宝店账号忘了怎么办 点击电脑桌面图标没反应怎么办 为什么淘宝打不开已停止运行怎么办 移动宽带打不开淘宝网怎么办 淘宝发布宝贝没有品牌怎么办 烫了卷发显老怎么办 唯品会商品不支持退换货怎么办 京东没有自提怎么办 不支持七天无理由的商品怎么办 淘宝评价忘记点亮星星怎么办 淘宝宝贝权重降低了该怎么办 换卡支付宝账号怎么办 支付宝免密支付无法关闭怎么办 手机换了支付宝怎么办 支付宝版本过低怎么办 支付宝无故扣钱怎么办 支付宝里面的钱不见了怎么办 支付宝还不起钱怎么办 支付宝借不到钱怎么办 买家淘宝号被监控了怎么办 卖微信号被骗了怎么办 淘宝原密码忘了怎么办 淘宝号忘记密码了怎么办啊 淘宝忘了原密码怎么办 电脑账户密码忘了怎么办 淘宝的密码忘了怎么办 支付宝支付异常无法登录怎么办 笔记本电脑打不开光盘怎么办 电脑dvd弹不出来怎么办 安卓手机浏览器有个锁退不了怎么办 华硕电脑com端口没有怎么办 淘宝子账号认证过于频繁怎么办 现在手机淘宝卖家怎么办 注册新的淘宝账户怎么办 淘宝账号被限制买东西了怎么办 淘宝账号被冻结了怎么办 淘宝买的手机坏了怎么办 淘宝账户被限制登录怎么办