0
点赞
收藏
分享

微信扫一扫

hdu1432 Lining Up --判断点在一条线上的个数


原题链接: ​​http://acm.hdu.edu.cn/showproblem.php?pid=1432​​


一:分析

给n个点,判断有多少个在一条线上。


二:AC代码

#define _CRT_SECURE_NO_DEPRECATE 

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;

int a[705];
int b[705];
int n;



int main()
{
while (~scanf("%d", &n) && n)
{
for (int i = 0; i < n; i++)
scanf("%d%d", &a[i], &b[i]);

int ans = 0;

for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
int num = 0;
for (int k = j + 1; k < n; k++)
{
if ((a[i] - a[j])*(b[j] - b[k]) - (b[i] - b[j])*(a[j] - a[k]) == 0)
num++;
}

ans = max(num, ans);
}
}

printf("%d\n", ans + 2);
}
return 0;
}








举报

相关推荐

0 条评论