POJ 3174 暴力枚举

思路:
暴力枚举三个点 判一判 搞定
(x1*y1=x2*y2) x1、y1、x2、y2为他们两两的差

//By SiriusRen
#include <cstdio>
using namespace std;
int n,cnt; 
struct Point{int x,y;}point[888];
struct ans{int x,y,z;}ans[888];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d%d",&point[i].x,&point[i].y);
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            for(int k=j+1;k<=n;k++)
                if((point[i].x-point[j].x)*(point[j].y-point[k].y)==(point[j].x-point[k].x)*(point[i].y-point[j].y))
                    ans[++cnt].x=i,ans[cnt].y=j,ans[cnt].z=k;
    printf("%d
",cnt);
    for(int i=1;i<=cnt;i++)
        printf("%d %d %d
",ans[i].x,ans[i].y,ans[i].z);
}

这里写图片描述

原文地址:https://www.cnblogs.com/SiriusRen/p/6532211.html