zoukankan      html  css  js  c++  java
  • COGS2090 Asm.Def找燃料

    时间限制:1 s   内存限制:256 MB

    【题目描述】

    “听说咱们要完了?”比利·海灵顿拨弄着操纵杆,头也不回地问Asm.Def。

    “不要听得风就是雨。”

    “开个玩笑嘛。不就是打机器人,紧张啥,你看人家凯尔·里斯,还能顺便谈个恋爱……”

    这时空天飞机陡然抬起机头, Asm.Def被紧紧压在座椅上。不一会,仪表盘上的青蛙玩偶飞了起来,表明他们已经进入近地轨道。

    “华莱士比你还紧张,听说是要去什么无……”

    “无线电焦点,在那能监听到透明计算网络控制的所有卫星。而且是已经去过了,所以我才会在这儿。”Asm.Def回答。

    “这我知道,送你去拉格朗日点,你们的‘蓝翔’号星舰,只是有个小问题:没油了。”

    “什么?!”

    “我们可以去废弃卫星上找燃料。现在就差一个程序员。”

    我们把太空看做一个二维平面。有N颗废弃卫星,第i颗的坐标是(xi,yi)。Asm.Def希望从尽可能多的卫星获取燃油,但他乘坐的空天飞机的飞行路径只能是一条直线,Asm.Def需要知道,这条直线最多能经过多少颗卫星。

    【输入格式】

    第1行1个整数N。

    接下来N行,每行两个整数xi,yi,表示第i颗卫星的坐标。

    【输出格式】

    一行一个整数,即一条直线最多能经过多少颗卫星。

    【样例输入】

    6
    0 0
    0 2
    2 0
    2 2
    1 1
    0 0

    【样例输出】

    4

    【提示】

    对于30%的数据,1<=N<=10.

    对于100%的数据,1<=N<=100,坐标为整数,绝对值<=10000.

    写水题舒缓一下心情

    数学问题 计算几何 暴力

    这系列的题,题面都好神啊……

    看了看数据范围,暴力怼过去好了。

    $O(n^2)$枚举两点,然后$O(n)$判有多少点在线上

    完毕

     1 /*by SilverN*/
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #include<vector>
     8 using namespace std;
     9 const double eps=1e-7;
    10 const int mxn=110;
    11 int read(){
    12     int x=0,f=1;char ch=getchar();
    13     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    14     while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
    15     return x*f;
    16 }
    17 struct point{
    18     double x,y;
    19     point operator + (point b){return (point){x+b.x,y+b.y};}
    20     point operator - (point b){return (point){x-b.x,y-b.y};}
    21     double operator * (point b){return x*b.x+y*b.y;}
    22 }a[mxn];
    23 double Cross(point a,point b){return a.x*b.y-a.y*b.x;}
    24 int ans=0;
    25 int n;
    26 void solve(point st,point ed){
    27     int res=0;
    28     for(int i=1;i<=n;i++){
    29         if(fabs(Cross(a[i]-st,ed-st))<eps && ((a[i]-st)*(a[i]-ed)<=0))res++;
    30     }
    31     ans=max(ans,res);
    32 }
    33 int main(){
    34     freopen("asm_fuel.in","r",stdin);
    35     freopen("asm_fuel.out","w",stdout);
    36     int i,j;
    37     scanf("%d",&n);
    38     for(i=1;i<=n;i++)
    39         scanf("%lf%lf",&a[i].x,&a[i].y);
    40     for(i=1;i<=n;i++){
    41         for(j=1;j<=n;j++){
    42             if(i==j)continue;
    43             solve(a[i],a[j]);
    44         }
    45     }
    46     cout<<ans<<endl;
    47     return 0;
    48 }
  • 相关阅读:
    转: 关于linux用户时间与系统时间的说明
    转: 关于CAS cpu锁的技术说明。
    基于TCPCopy的Dubbo服务引流工具-DubboCopy
    Netty中的坑(下篇)
    编写明显没有错误的代码
    Zookeeper-Zookeeper client
    Zookeeper-Zookeeper leader选举
    Zookeeper-Zookeeper启动过程
    Zookeeper-Zookeeper的配置
    Zookeeper-Zookeeper可以干什么
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/6675610.html
Copyright © 2011-2022 走看看