求最长山谷序列
个数为偶数,最底层的数字相同
如[5 4 3 2 1 2 3 4 5]
为8
value=[1,2,4,5,6,7,8,9,1]
rv=list(reversed(value))
n=len(value)
dp=[1]*n
dp1=[1]*n
for i in range(1,n):
m=m2=1
for j in range(n):
if value[j]>value[i]:
m=max(m,dp[j])
dp[i]=m+1
if rv[j]>rv[i]:
m2=max(m2,dp1[j])
dp1[i]=m2+1
res=0
for i in range(n):
for j in range(i+1,n):
if value[i]==value[j]:
res=max(2*min(dp[i],dp1[-j-1]),res)
print(res,dp,dp1)
解方程,最多五次,实数解从小到大输出。
import sympy
x=sympy.symbols("x",real=True)
m=len(n)-1
f=0
for i in range(m):
f+=n[i]*x**(m-i)
f+=n[-1]
a=sympy.solve([f],[x])
if type(a)==dict:
for i in a:
print("%.2f" %a[i])
else:
re=[i[0] for i in a]
re=[i.evalf() for i in re if i.is_real]
# print(re)
# print(re,type(re[0]))
# re=[i for i in re if not isinstance(i,add.Add)]
if re:
re.sort()
for i in re:
print("%.2f" % i)
else:
print("No")
简单
设棍长为l,如果超过d,则等概率掰断,扔掉左边,若右边仍然大于的,继续。求掰次数的期望
hdu5984
https://blog.csdn.net/jay__bryant/article/details/81188557