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:回复In Reply To:求教大牛! Posted by:ct314171238 at 2008-08-12 19:16:31 算出最小的那个最大值max后,用此方法即可解决这个输出问题。 j=m; i=m+k-1; for(v=k; v>=1; v--){ //v代表抄写员的序号。 s=0; //s表示第v段的和,只要s<=max即可。 while(s+p[j]<=max && j>=v){ //如果j<v,就会出现前v-1个人中, //有人没分到copy任务。每个人至少要有一个copy任务。 ans[i]=p[j]; s+=p[j]; i--; j--; } ans[i]=-1; //-1代表这个位置应该输出 / i--; } 希望能对你有所帮助。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator