1 条题解

  • 0
    @ 2024-12-24 9:59:29

    C++ :

    #include<stdio.h>
    struct node
    {
    	int  x, y;
    }a[700];
    int main()
    {
    	int n;
    	while(scanf("%d",&n)!=EOF)
    	{
    		int max=0;int ax,ay;
    		for (int i=0;i<n;i++)
    			scanf("%d%d",&a[i].x,&a[i].y);
    		for (int i=0;i<n-2;i++)
    		{
    			for (int j=i+1;j<n-1;j++)
    			{
    				int sum=0;
    				for (int k=j+1;k<n;k++)
    				{
    					if (k!=i&&k!=j&&i!=j)
    					{
    						int as;
    						as=a[i].x*a[j].y+a[j].x*a[k].y+a[k].x*a[i].y-a[k].x*a[j].y-a[k].y*a[i].x-a[j].x*a[i].y;
    						if (as==0)  //用面积为0来证明三点共线
    							sum++;
    					}
    				}
    				if (max<sum) max=sum;
    			}
    		}
    		printf("%d\n",max+2);
    	}
    }
    
    • 1

    信息

    ID
    1594
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者