poj 1843 Shire

poj 1843 Shire,第1张

poj 1843 Shire
#include<iostream>#include<cstdlib>#include<cstring>#include<algorithm>#include<stdio.h>#include<cmath>using namespace std;double xx,yy,l,eps=1e-7;struct point{    double x,y;    bool operator <(const point &temp)const    {         if(fabs((y-yy)*(temp.x-xx)-(x-xx)*(temp.y-yy))<eps)  return fabs(x-xx)+fabs(y-yy)>fabs(temp.x-xx)+fabs(temp.y-yy);         return (y-yy)*(temp.x-xx)-(x-xx)*(temp.y-yy)<0;    }};point a[101],stack[101],na[101];int n,top,ans,cnt,dp[101][101];double cross(double x1,double y1,double x2,double y2){       return x1*y2-x2*y1;}int main(){    int i,j,s,p,q;    scanf("%d",&n);    a[0].x=a[0].y=xx=yy=0;    for(i=1;i<=n;i++)       scanf("%lf%lf",&a[i].x,&a[i].y);    n++;    scanf("%lf",&l);    ans=0;    na[0]=a[0];     for(i=1;i<=n;i++)    {         cnt=1;         dp[0][0]=1;         if(ans<1) ans=1;          if(2*(a[i].x+a[i].y)<=l)         {  na[cnt++]=a[i];  if(ans<2)     ans=2;  for(j=1;j<n;j++)  {     if(j==i)        continue;     if(a[j].x<=a[i].x&&2*(a[j].y+a[i].x)<=l)         na[cnt++]=a[j];  }  sort(na+1,na+cnt);  for(j=1;j<cnt;j++)  {      dp[0][j]=2;      for(s=j+1;s<cnt;s++)      {          if(fabs(cross(na[s].x,na[s].y,na[j].x,na[j].y))<eps)  dp[0][j]++;      }   }  for(j=1;j<cnt;j++)     for(s=j+1;s<cnt;s++)     {          dp[j][s]=2;          if(fabs(cross(na[s].x,na[s].y,na[j].x,na[j].y))<eps)  continue;          for(p=0;p<j;p++)          {  if(cross(na[s].x-na[p].x,na[s].y-na[p].y,na[j].x-na[p].x,na[j].y-na[p].y)<eps)  {      if(dp[j][s]<dp[p][j]+1)         dp[j][s]=dp[p][j]+1;  }          }int value;          if(cross(na[0].x-na[j].x,na[0].y-na[j].y,na[s].x-na[j].x,na[s].y-na[j].y)<eps)          {  value=dp[j][s];  for(p=s+1;p<cnt;p++)  {     if(fabs(cross(na[0].x-na[s].x,na[0].y-na[s].y,na[p].x-na[s].x,na[p].y-na[s].y))<eps)        value++;  }  if(ans<value)     ans=value;          }     }         }       }       printf("%dn",ans);      return 0;}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4907922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存