题解
2023-07-24 18:36:33
发布于:河北
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=302;
pair <double,double > dx[N];
int n,ans[N],cnt[N][N],f[N];
bool check(int i,int j,int id)
{
if((dx[id].second-dx[i].second)(dx[j].first-dx[id].first)<(dx[j].second-dx[id].second)(dx[id].first-dx[i].first))
return true;
return false;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lf%lf",&dx[i].first,&dx[i].second);
sort(dx+1,dx+1+n);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
for(int l=i+1;l<=n;l++)
if(dx[l].first>dx[i].first&&dx[l].first<dx[j].first&&check(i,j,l))
cnt[i][j];
}
for(int i=1;i<=n;i)
if(dx[i].firstdx[i-1].first)
f[i]=f[i-1]+(dx[i].seconddx[i-1].second?0:1);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
for(int l=j+1;l<=n;l++)
{
if(check(i,l,j))//在下面
{
if(dx[i].firstdx[j].first||dx[l].firstdx[j].first)
ans[cnt[i][l]-cnt[i][j]-cnt[j][l]];
else
ans[cnt[i][l]-cnt[i][j]-cnt[j][l]-1-f[j]];
}
else
{
if(dx[i].firstdx[j].first||dx[l].firstdx[j].first)
ans[cnt[i][j]+cnt[j][l]-cnt[i][l]];
else
ans[cnt[i][j]+f[j]+cnt[j][l]-cnt[i][l]];
}
}
for(int i=0;i<=n-3;i++)
printf("%d\n",ans[i]);
return 0;
}
这里空空如也
有帮助,赞一个