码迷,mamicode.com
首页 > 其他好文 > 详细

1118 Lining Up

时间:2015-10-17 13:26:08      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

题目链接: 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 }

 

1118 Lining Up

标签:

原文地址:http://www.cnblogs.com/roger9567/p/4887244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!