HOJ 1099 Lining Up

题目大意:给出N个点,求在这N个点中共线的最多点数;

思路:从第一个点开始依次求与其后面所有点的共线的最大点数,最后求所有最大点中的最大点即为所求,主要要考虑到斜率为0和不存在的情况。这种算法的时间复杂度是比较大的,有待改善。。。

Accepted 1.00 s 704 K C++ 1555 B

Source Code
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <math.h>
 5 
 6 int main()
 7 {
     int n;
 9   int input[701][3];
10   double temp[701][2];
11 
12   while (scanf("%d"&n)!=EOF && n!=0)
13   {
14     for (int i=1; i<=n; i++)
15     {
16       scanf("%d %d"&input[i][1], &input[i][2]);
17     }
18     for (int i=1; i<=n; i++)
19     {    
20 //    printf("Point %d:\n", i);
21       for (int j=0; j<=n; j++)
22       {
23         temp[j][0= 0.0;
24         temp[j][1= -2.0;
25       }
26          
27       for (int j=i+1; j<=n; j++)
28       {
29         double t;
30         if (input[j][1- input[i][1== 0)
31         {
32           t = -1;
33         }
34         else
35         {
36           t = fabs((double) (input[j][2- input[i][2]) /
37                    (input[j][1- input[i][1]));
38         }
39         int k=1;
40         while (temp[k][1!= -2.0)
41         {
42           if (temp[k][1]==t)
43           {
44             temp[k][0++;
45 //          printf("-----%f----%f---\n", t, temp[k][0]);
46             goto here;
47           }
48           k ++;
49         }
50 here:   if (temp[k][1== -2.0)
51         {
52           temp[k][0= 1;
53           temp[k][1= t;
54 //        printf("-----%f----%f---\n", t, temp[k][0]);
55         }
56       }
57       int p = 1;
58       int largest = 0
59       while (temp[p][1!= -2.0)
60       {
61 //      printf ("--%-3d %f--\n", temp[p][0], temp[p][1]);
62         if (temp[p][0> largest)
63         {
64           largest = (int)temp[p][0];
65         }
66           p++;
67       }
68       input[i][0= largest;
69     }
70     int largest=input[1][0];
71     for (int i=2; i<=n; i++)
72     {
73       if(input[i][0> largest)
74       {
75         largest = input[i][0];
76       }
77     }
78     printf("%d\n", largest+1);
79   }
80 
81   return 0;
82 }

 

PS:比较高效的算法,http://xuun.blog.163.com/blog/static/3322335201022925033949/

posted on 2010-04-20 14:04  Lowtec  阅读(294)  评论(0编辑  收藏  举报

导航