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 |
用int 循环条件 min <= maxIn Reply To:我也是用二分法做的 ,怎么就不对了? Posted by:19106118 at 2007-07-23 11:32:15 > 我不知道是我判断的方法不对,,还是其他什么问题,哪位帮忙指点一下啊,代码写的很简单的 > > > #include <stdio.h> > int main() > { > long m,n,i,k; > double a[100000],min,max,mid,sum; > while(EOF!=scanf("%d%d",&m,&n)) > { > min=1;max=0; > for(i=0;i<m;i++) > { > scanf("%lf",a+i); > if(min<a[i])min=a[i]; > max+=a[i]; > } > while(max-min>0.1) > { > mid=(max+min)/2; > k=0; > sum=0; > for(i=0;i<m;i++) > { > sum+=a[i]; > if(sum>mid) > { > sum=a[i]; > k++; > } > else if(sum==mid) > { > sum=0; > k++; > } > } > if(k<=n)max=mid; > else min=mid; > > } > printf("%.0lf\n",mid); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator