zoukankan      html  css  js  c++  java
  • 射击游戏

    小易正在玩一款新出的射击游戏,这个射击游戏在一个二维平面进行,小易在坐标原点(0,0),平面上有n只怪物,每个怪物有所在的坐标(x[i], y[i])。小易进行一次射击会把x轴和y轴上(包含坐标原点)的怪物一次性消灭。
    小易是这个游戏的VIP玩家,他拥有两项特权操作:
    1、让平面内的所有怪物同时向任意同一方向移动任意同一距离
    2、让平面内的所有怪物同时对于小易(0,0)旋转任意同一角度
    小易要进行一次射击。小易在进行射击前,可以使用这两项特权操作任意次。

    小易想知道在他射击的时候最多可以同时消灭多少只怪物,请你帮帮小易。

    如样例所示:

    所有点对于坐标原点(0,0)顺时针或者逆时针旋转45°,可以让所有点都在坐标轴上,所以5个怪物都可以消灭。

    输入描述:

    输入包括三行。
    第一行中有一个正整数n(1 ≤ n ≤ 50),表示平面内的怪物数量。
    第二行包括n个整数x[i](-1,000,000 ≤ x[i] ≤ 1,000,000),表示每只怪物所在坐标的横坐标,以空格分割。
    第二行包括n个整数y[i](-1,000,000 ≤ y[i] ≤ 1,000,000),表示每只怪物所在坐标的纵坐标,以空格分割。
    

    输出描述:

    输出一个整数表示小易最多能消灭多少只怪物。

    示例1

    输入

    5
    0 -1 1 1 -1
    0 -1 -1 1 1

    输出

    5
    #include<set>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    typedef long long LL;
    
    int n;
    int X[60],Y[60];
    int main()
    {
        scanf("%d",&n);
        for(int i=0; i<n; i++)
            scanf("%d",&X[i]);
        for(int i=0; i<n; i++)
            scanf("%d",&Y[i]);
        int numMax=0,numCurrent=0;
        if(n<=3)
        {
            printf("%d
    ",n);
            return 0;
        }
        for(int i=0; i<n; i++)
        {
            for(int j=i+1;j<n;j++)
            {
                int x1=X[j]-X[i];
                int y1=Y[j]-Y[i];
                for(int k=0;k<n;k++)
                {
                    if(k==i||k==j) continue;
                    numCurrent=3;
                    for(int l=0;l<n;l++)
                    {
                        if(l==i||l==j||l==k) continue;
                        int x2=X[l]-X[k];
                        int y2=Y[l]-Y[k];
                        int x3=X[l]-X[i];
                        int y3=Y[l]-Y[i];
                        if(x1*x2+y1*y2==0||x1*y3==x3*y1)
                            numCurrent++;
                    }
                    if(numMax<numCurrent)
                        numMax=numCurrent;
                }
            }
        }
        printf("%d
    ",numMax);
    }
  • 相关阅读:
    云纵持续交付环境管理进化历程
    #研发解决方案#数据移山:接入、迁移、同步一站式
    如何快速判断一个人水平高低
    成长秘笈:是你教我,不是我教你
    年轻的工程师如何月入伍万XD
    Uber是如何重新思考GPS定位的(尤其是在城市峡谷中)
    当我们谈重构的时候我们想谈什么?
    #研发解决方案#异地多活让商户无感知
    乱是一种什么体验?
    新年技术团队寄语
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602257.html
Copyright © 2011-2022 走看看