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:这个方法倒不错,但是直接用这个方法编程,提交后就是Wrong,有一些细节需要注意。In Reply To:我的方法(in),枚举+贪心。有点慢 Posted by:xiaolonghingis at 2006-08-19 15:33:35 因为答案c只可能在100到0之间,从大到小枚举c。假设答案为c,那么必然有 100*(a1+.....+ak) -------------------- 〉=c ,两边同乘分母后得 b1+.....+bk 100*(a1+.....+ak)-c*(b1+.......+bk)>=0 取100*ai-c*bi中最大的n-k个,看他们的和是否大于零即可。 直接使用这个方法不能处理进位。假如 100*(a1+.....+ak) -------------------- =85.6 , 用这个方法算出的答案是85,实际上答案是86,因为 b1+.....+bk 100*(a1+.....+ak)-86*(b1+.......+bk)<0 所以: 1000*(a1+.....+ak) -------------------- 〉=c , 那么c是在0到1000之间,两边同乘分母后得 b1+.....+bk 1000*(a1+.....+ak)-c*(b1+.......+bk)>=0 取1000*ai-c*bi中最大的n-k个,看他们的和是否大于零即可。 用二分的方法来枚举c,如果满足上述条件最大的c是ans,那么最后要输出(ans+5)/10,这样就可以处理进位。 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator