+ -
当前位置:首页 → 问答吧 → 每周编程题 (7/6 - 13/6)

每周编程题 (7/6 - 13/6)

时间:2014-06-19

来源:互联网

今次系初中数学题:
VENOM

O(log n) 可以 AC。但系 O(1) 答案其实更简单,20 行内搞掂。

常用 SPOJ 题术语解释:
AC - 代表 Accepted,表示答案符合要求,已被接受。WA - 代表 Wrong Answer,表示答案出错。TLE - 代表 Time Limited Exceeded,表示超出时间限制。RTE - 代表 Run Time Error,表示执行时出现错误。

作者: fitcat07   发布时间: 2014-06-19

not fully tested
复制内容到剪贴板代码:from math import floor

def f_estimate(H, P, A):
a = P
b = 4*P - 4*A
c = 3*P - 4*A - 8*H
return (-b + (b*b -4 *a *c)**0.5 ) / (2*a)


def f_exact(H, P, A, t):
n = (t + 1) / 2
Sp = n * (n + 1) / 2 * P
Sa = (t -1)/2 * A
return H - Sp + Sa


def find_result(H, P, A):
if H - P + A < 0:
return 1

nth = floor(f_estimate(H, P, A)) | 1

if f_exact(H, P, A, nth) > 0:
return nth + 2

return nth

print(find_result(10, 2, 1))
print(find_result(3, 7, 2))
print(find_result(81, 4, 1))
print(find_result(87, 8, 4))

作者: form5   发布时间: 2014-06-19