zoukankan      html  css  js  c++  java
  • 关于多点共线问题

    想了想这个问题,自己写了写,之前百度了个答案,思想基本类似

    #include <vector>
    #include <map>

     class point
     {
     public:
         point(int x0,int x1):x(x0),y(x1){};
         ~point(){};
         int getX() const {return x;}
         int getY() const {return y;}
     private:
         int x;
         int y;
     };
     int getMaxOnline(vector<point>& input)
     {
         map<int,int> map1;
         static int key = 0;
         int max = 0;
         for(int i =0;i<input.size();++i)
         {
             for(int k =0;k<input.size();++k)
             {
                 if(i != k)
                 {
                     key ++;
                     int x0 = input[i].getX() - input[k].getX();
                     int y0 = input[i].getY() - input[k].getY();
                      for(int j =0;j<input.size();++j)
                      {
                         if(j != k && j != i )
                         {
                             int x1 =  input[j].getX() - input[k].getX();
                             int y1 =  input[j].getY() - input[k].getY();
                             if(x0*y1 - y0*x1 == 0)
                             {
                                 map1[key]++;
                             }
                         }
                      }
                 }
             }
         }
         map<int,int>::iterator it;
         for(it = map1.begin();it != map1.end();++it)
         {
             if(it->second >= max)
             {
                 max = it->second;
             }
         }
         return max+2;
     }

     void main()

     {
        int x,y;
        vector<point> vec;
        for(int i = 0;i < 5 ;++i)
        {
            cin >>x>>y;
            point a(x,y);
            vec.push_back(a);
        }
        int max = getMaxOnline(vec);
        cout<<"max online is "<<max <<endl;
        system("pause");
     }

  • 相关阅读:
    玩家移动
    人物上线(激活玩家之后)
    map 玩家上线
    无锁的环形队列
    随笔
    std::bind
    如何查找文件中的schema约束
    myeclipse便捷导包方式
    21 求1+2!+3!+...+20!的和
    20 求出这个数列的前 20 项之和
  • 原文地址:https://www.cnblogs.com/doulcl/p/10561324.html
Copyright © 2011-2022 走看看