每周编程题 (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,表示执行时出现错误。
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))
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28