Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:这样为什么WA啊,我实在是看不出来了!In Reply To:这样为什么WA啊,我实在是看不出来了! Posted by:suhang at 2010-01-13 19:57:02 > #include <cstdio> > #include <cmath> > > const int maxn=110,maxm=60,oo=2134000000; > > int n,s[maxn]; > int x[maxn][maxm],y[maxn][maxm]; > long double dp[maxn][maxm]; > > long double Distance(int x1,int y1,int x2,int y2) > { > return sqrt( (x1-x2) * (x1-x2)+(y1-y2) * (y1-y2) ); > } > int main() > { > freopen("p2173.in","r",stdin); > freopen("p2173.out","w",stdout); > > scanf("%d",&n); > for (int i=2;i<=n;i++) > for (int j=1;j<=maxm;j++) > dp[i][j]=oo; > for (int i=1;i<=n;i++) > { > scanf("%d",&s[i]); > for (int j=1;j<=s[i];j++) > scanf("%d%d",&x[i][j],&y[i][j]); > } > for (int i=2;i<=n;i++) > { > for (int j=1;j<=s[i];j++) > for (int k=1;k<=s[i-1];k++) > if (dp[i-1][k]+Distance(x[i-1][k],y[i-1][k],x[i][j],y[i][j])<dp[i][j]) > dp[i][j]=dp[i-1][k]+Distance(x[i-1][k],y[i-1][k],x[i][j],y[i][j]); > } > long double min=oo; > for (int i=1;i<=s[1];i++) > for (int j=1;j<=s[n];j++) > if (dp[n][j]+Distance(x[1][i],y[1][i],x[n][j],y[n][j])<min) > min=dp[n][j]+Distance(x[1][i],y[1][i],x[n][j],y[n][j]); > min=min * 100; > int ans=int(min); > printf("%d\n",ans); > return 0; > } 我知道了,没有枚举牛1的位置。千万要注意啊!!!!!!!!! Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator