[Rqnoj-150]轰炸

来源:互联网 发布:仿今日头条源码 编辑:程序博客网 时间:2024/03/29 21:03

轰炸
Rqnoj上的计算几何(这也叫计算几何?)。

法1.
如果你想AC的话,那么O(N^3)级的枚举算法,注意下常数优化就够了;

法2.
如果要高效的的话,可以先N^2的枚举两端点求斜率,然后NlogN排个序,求众数M,则
ans(ans-1)=M

法1.代码:

var   x,y:array[1..700] of longint;   n,i,j,k,dx,dy,count,ans:longint;begin     readln(n); for i:=1 to n do readln(x[i],y[i]);     ans:=0;     for i:=1 to n-2 do     for j:=i+1 to n-1 do begin         count:=2;         dx:=x[j]-x[i];         dy:=y[j]-y[i];         for k:=j+1 to n do             if dx*(y[k]-y[i])=(x[k]-x[i])*dy then inc(count);         if count>ans then ans:=count;     end;     write(ans);end.              
法2.有空再写。