POJ 1118 Lining Up 直线穿过最多的点数
http://poj.org/problem?id=1118
直接枚举O(n^3) 1500ms能过...数据太水了...这个代码就不贴了...
斜率排序O(n^2logn)是更好的做法...枚举斜率...直线方程相同的线段数量k...一定满足方程 n(n-1)/2=k --------------- 还真是baka. 到2点才想出这个结论
特判只有一个点,两个点的情况...500ms AC
- /********************* Template ************************/
- #include <set>
- #include <map>
- #include <list>
- #include <cmath>
- #include <ctime>
- #include <deque>
- #include <queue>
- #include <stack>
- #include <bitset>
- #include <cstdio>
- #include <string>
- #include <vector>
- #include <cassert>
- #include <cstdlib>
- #include <cstring>
- #include <sstream>
- #include <fstream>
- #include <numeric>
- #include <iomanip>
- #include <iostream>
- #include <algorithm>
- #include <functional>
- using namespace std;
- #define EPS 1e-8
- #define MAXN (int)5e5+5
- #define MOD (int)1e9+7
- #define PI acos(-1.0)
- #define LINF ((1LL)<<50)
- #define INF (1<<30)
- #define DINF (1e10)
- #define max(a,b) ((a) > (b) ? (a) : (b))
- #define min(a,b) ((a) < (b) ? (a) : (b))
- #define max3(a,b,c) (max(max(a,b),c))
- #define min3(a,b,c) (min(min(a,b),c))
- #define BUG cout<<"BUG! "<<endl
- #define LLL cout<<"--------------"<<endl
- #define L(t) (t << 1)
- #define R(t) (t << 1 | 1)
- #define Mid(a,b) ((a + b) >> 1)
- #define lowbit(a) (a & -a)
- #define FIN freopen("in.txt","r",stdin)
- #define FOUT freopen("out.txt","w",stdout)
- #pragma comment (linker,"/STACK:102400000,102400000")
- // typedef long long LL;
- // typedef unsigned long long ULL;
- // typedef __int64 LL;
- // typedef unisigned __int64 ULL;
- // int gcd(int a,int b){ return b?gcd(b,a%b):a; }
- // int lcm(int a,int b){ return a*b/gcd(a,b); }
- /********************* F ************************/
- struct POINT{
- double x,y;
- POINT(double _x = , double _y = ):x(_x),y(_y){};
- int id;
- }p[];
- struct LINE{
- POINT a,b;
- double K,B;
- LINE(POINT _a = ,POINT _b = ):a(_a),b(_b){
- if((a.x - b.x) == ){
- K = DINF;
- B = a.x;
- }else{
- K = ((a.y - b.y) / (a.x - b.x));
- B = (- (b.x * a.y - a.x * b.y) / (a.x - b.x));
- }
- }
- }L[];
- bool cmp(LINE a,LINE b){
- if(a.K == b.K) return a.B < b.B;
- return a.K < b.K;
- }
- int main()
- {
- //FIN;
- int n;
- while(cin>>n && n){
- for(int i = ; i < n ; i++)
- scanf("%lf%lf",&p[i].x,&p[i].y);
- if(n == || n == ){
- printf("%d\n",n);
- continue;
- }
- int cnt = ;
- for(int i = ; i < n ; i++)
- for(int j = i+ ; j < n ; j++)
- L[cnt++] = LINE(p[i],p[j]);
- sort(L,L+cnt,cmp);
- int m = -INF;
- for(int i = ; i < cnt- ; i++){
- int c = ;
- while(L[i].K == L[i+].K && L[i].B == L[i+].B){
- c++;
- i++;
- }
- c = sqrt((c+)*)+;
- m = max(m,c);
- }
- printf("%d\n",m);
- }
- return ;
- }
POJ 1118 Lining Up 直线穿过最多的点数的更多相关文章
- Leetcode 149.直线上最多的点数
直线上最多的点数 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o ...
- Java实现 LeetCode 149 直线上最多的点数
149. 直线上最多的点数 给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | ...
- UVa 270 & POJ 1118 - Lining Up
题目大意:给一些点,找出一条直线使尽可能多的点在这条直线上,求这条直线上点的个数. 以每一个点为原点进行枚举,求其它点的斜率,斜率相同则说明在一条直线上.对斜率排序,找出斜率连续相等的最大长度. #i ...
- poj 1118 Lining Up(水题)
再思考一下好的方法,水过,数据太弱! 本来不想传的! #include <iostream> using namespace std; #define MAX 702 /*284K 422 ...
- POJ 1118 Lining Up
枚举,排序. 先将所有点按双关键字排序,然后枚举线的顶点$P$,剩余的点以$P$为中心进行极角排序,可以取个$gcd$,这样一样的点就排在一起了,然后统计一下更新答案. #pragma comment ...
- [Swift]LeetCode149. 直线上最多的点数 | Max Points on a Line
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...
- leetcode 149. 直线上最多的点数 解题报告
给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o +------- ...
- 149 Max Points on a Line 直线上最多的点数
给定二维平面上有 n 个点,求最多有多少点在同一条直线上. 详见:https://leetcode.com/problems/max-points-on-a-line/description/ Jav ...
- Max Points on a Line(直线上最多的点数)
给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上. 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | ...
随机推荐
- POJ - 3984 - 迷宫问题 (DFS)
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10936 Accepted: 6531 Description ...
- C++ STL:vector
不定长数组:vetor 它就像一个二维数组.仅仅是第一维的大小是固定的,可是第二维的大小不固定. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAx ...
- 数据库阿里连接池 Druid配置详解以及web监控统计
java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,有不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色的性能,也 ...
- 4.菜鸟教你一步一步开发 web service 之 axis 客户端创建
转自:https://blog.csdn.net/shfqbluestone/article/details/37723517 在上个教程中我们创建了一个 axis 服务端的 web service ...
- html&css基础笔记
有道笔记:http://note.youdao.com/noteshare?id=a6d7eab195085655bbfce86665524e35 一 HTML结构标签 HTML基本标签 标题标签 & ...
- vue 实现文本域还剩多少字符
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- py2exe打包python脚本
在工作中遇到将python脚本转换成exe可执行程序的需求,通过查询可以使用py2exe来构建满足要求的程序,这里简要说明一下使用步骤. 一.py2exe是一个将python脚本转换成windows上 ...
- msp430在ccsv5下出现的问题总结
一.内存问题 问题描写叙述,报错: program will not fit into available memory. placement with alignment fails for se ...
- Android实现本地图片选择及预览缩放效果仿春雨医生
在做项目时常常会遇到选择本地图片的需求.曾经都是懒得写直接调用系统方法来选择图片.可是这样并不能实现多选效果.近期又遇到了,所以还是写一个demo好了.以后也方便使用.还是首先来看看效果 显示的图片使 ...
- js---10作用域链
<html> <head> <title>scope basic</title> </head> <body> <scri ...