zoukankan      html  css  js  c++  java
  • 九度 1548 平面上的点(技巧题)

    题目描述:

    给定平面上的n个点,任意做一条直线,求至多能有几个点恰好落在直线上。

    思路

    1. Leetcode 上原题. 解法是先确定一个点, 然后计算其他点相对于这个点的斜率

    2. 这道题需要注意多点重合, 斜率为无穷大的情况

    代码 未通过九度测试

    #include <iostream>
    #include <stdio.h>
    #include <map>
    using namespace std;
    
    int xs[200], ys[200];
    
    int main() {
    freopen("testcase.txt", "r", stdin);
        int pointnum, x, y;
        while(scanf("%d", &pointnum) != EOF) {
            int retVal = 0, inf = 0, dup = 1;
            
            for(int i = 0; i < pointnum; i ++) {
                scanf("%d%d", &x, &y);
                xs[i] = x, ys[i] = y;
            }
    
            for(int i = 0; i < pointnum; i ++) {
                map<double, int> record;
                int basex = xs[i], basey = ys[i];
                for(int j = 0; j < pointnum; j ++) {
                    if(i == j) continue;
                    int newx = xs[j], newy = ys[j];
                    if(newx == basex && newy == basey) {
                        dup ++;
                    }else if(newx == basex) {
                        inf++;
                    }else{
                        record[((double)(newy-basey))/(newx-basex)] ++;
                    }
                }
                int party = 0;
                map<double, int>::iterator it_map;
                for(it_map = record.begin(); it_map != record.end(); it_map ++) {
                    party = max(party, it_map->second);
                }
                party = max(party, inf);
                party += dup;
                retVal = max(party, retVal);
            }
    
            
            printf("%d
    ", retVal);
        }
        return 0;
    }
  • 相关阅读:
    TypeScript 里 interface 和 type 的区别
    TypeScript 定义函数的几种写法
    什么是 TypeScript 里的 Constructor signature
    Linux 主要的发行系统版本介绍
    PHP跨域
    26. Remove Duplicates from Sorted Array
    关于hashmap的文章
    1. Two Sum
    qt5-资源与图像
    qt--QDialogButtonBox按钮盒
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3576484.html
Copyright © 2011-2022 走看看