数学菜鸡求助 数学公式解释orz
查看原帖
数学菜鸡求助 数学公式解释orz
400760
ZYH20190341315楼主2021/6/17 17:29

最后面的公式

#include<bits/stdc++.h>
using namespace std;
const int N=7e2+10,M=(1<<32-1);
struct st{
	int x,y;
}s[N];
map<pair<double,double>,int>m;
/*
5
1 1
2 2
3 3
4 4
5 5
7
1 1
2 2
3 3
1 0
2 1
3 1
4 0
*/
int main()
{
	int n;
	int x1,y1;
	int x2,y2;
	int len=0,max1=0;
	double k=0;//斜率 
	double b=0;//截距 
	pair<double,double>t;
	sx mid1,mid2;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>s[i].x>>s[i].y;
	}
	for(int i=0;i<n;i++)
	{
		for(int j=i+1;j<n;j++)
		{
			x1=s[i].x;
			y1=s[i].y;
			x2=s[j].x;
			y2=s[j].y;
			if(x2!=x1)
			{
				k=1.0*(y2-y1)/(x2-x1);
				b=1.0*y1-1.0*(y2-y1)*x1/(x2-x1);
			}
			else
			{
				k=(double)M;
				b=1.0*x1;
			}
			t.first=k,t.second=b;
			m[t]++;
		}
	}
	map<pair<double,double>,int>::iterator i;
	for(i=m.begin();i!=m.end();i++)
	//cout<<i->second<<" ",
	max1=max(max1,i->second);
	//cout<<endl;
	//cout<<m.size()<<endl;
	cout << (1.0 + sqrt(1 + 8 * max1)) / 2.0 << endl;//这个公式什么意思啊?我把求的最值套入这个公式(dalao)中就AC了。AC之后一脸懵,这个什么意思
	return 0;
}
2021/6/17 17:29
加载中...