标签:
题目链接: http://poj.org/problem?id=1118
题意: 给定n个点, 求在同一直线上的点最多的直线上点的数目.
解法: 简单题目, 规模比较小, 暴力搜索.
1 #include <iostream> 2 using namespace std; 3 #define MAXN 700 4 struct Point{ 5 int x,y; 6 }p[MAXN]; 7 int main(){ 8 int N; 9 cin>>N; 10 while(N){ 11 int i,j,k; 12 for(i=0;i<N;++i){ 13 cin>>p[i].x>>p[i].y; 14 } 15 int max = 0; 16 for(i=0;i<N;++i){ 17 for(j=i+1;j<N;++j){ 18 int s = 2; 19 for(k=j+1;k<N;++k){ 20 int t1 = (p[i].x - p[j].x)*(p[j].y - p[k].y); 21 int t2 = (p[i].y - p[j].y)*(p[j].x - p[k].x); 22 if(t1 == t2) 23 s++; 24 } 25 if(s>max) 26 max = s; 27 } 28 } 29 cout<<max<<endl; 30 cin>>N; 31 } 32 return 0; 33 }
标签:
原文地址:http://www.cnblogs.com/roger9567/p/4887244.html