-
1 # 愛生活的麵條wxy
-
2 # 浪跡天涯33217
寫一個程式來查詢從最高點到底部任意處結束的路徑,使路徑經過數字的和最大。每一步可以走到左下方的點也可以到達右下方的點。
分析
這題我是用逆推法來做的
按三角形的行劃分階段,若行數為 n,則可把問題看做一個n-1個階段的決策問題。先求出第n-1階段(第n-1行上各點)到第n行的的最大和,再依次求出第n-2階段、第n-3階段……第1階段(起始點)各決策點至第n行的最佳路徑。
設:f[i,j]為從第i階段中的點j至第n行的最大的數字和,狀態轉移方程為:
則:f[n,j]=a[n,j] 1<=j<=n
f[i,j]=max{a[i,j]+f[i+1,j],a[i,j]+f[i+1,j+1]} 1<=j<=i,1<=i<=n-1
f[1,1]即為所求。
var
n,i,j:longint;
a,f:array[1..1000,1..1000]of longint;
begin
readln(n);
for i:=1 to n do
for j:=1 to i do
read(a[i,j]);
for i:=1 to n do
f[n,i]:=a[n,i];
for i:=n-1 downto 1 do
for j:=1 to i do
if f[i+1,j]>f[i+1,j+1] then f[i,j]:=a[i,j]+f[i+1,j] else f[i,j]:=a[i,j]+f[i+1,j+1];
write(f[1,1]);
end.
-
3 # 鑫有所依
syms A B X Y
solve(sin(A)*sin(B)+cos(A)*cos(B)*cos(X)-Y,X)
ans =
acos((Y - sin(A)*sin(B))/(cos(A)*cos(B))) + 2*pi*k
2*pi*k - acos(1/cos(A)/cos(B)*(Y - sin(A)*sin(B)))
回覆列表
三角函式的逆推,三角函式的反函式,是多值函式。它們是反正弦Arcsinx,反餘弦Arccosx,反正切Arctanx,反餘切Arccotx,反正割Arcsecx=1/cosx,反餘割Arccscx=1/sinx等,各自表示其正弦、餘弦、正切、餘切、正割、餘割為x的角。為限制反三角函式為單值函式,將反正弦函式的值y限在y=-π/2≤y≤π/2,將y為反正弦函式的主值,記為y=arcsinx;相應地,反餘弦函式y=arccosx的主值限在0≤y≤π;反正切函式y=arctanx的主值限在-π/2<y<π/2;反餘切函式y=arccotx的主值限在0<y<π。
反三角函式實際上並不能叫做函式,因為它並不滿足一個自變數對應一個函式值的要求,其影象與其原函式關於函式y=x對稱。其概念首先由尤拉提出,並且首先使用了arc+函式名的形式表示反三角函式,而不是f-1(x).
反三角函式主要是三個:
y=arcsin(x),定義域[-1,1],值域[-π/2,π/2]
y=arccos(x),定義域[-1,1],值域[0,π]
y=arctan(x),定義域(-∞,+∞),值域(-π/2,π/2)
sinarcsin(x)=x,定義域[-1,1],值域【-π/2,π/2】
反三角函式公式:
arcsin(-x)=-arcsinx
arccos(-x)=∏-arccosx
arctan(-x)=-arctanx
arccot(-x)=∏-arccotx
arcsinx+arccosx=∏/2=arctanx+arccotx
sin(arcsinx)=x=cos(arccosx)=tan(arctanx)=cot(arccotx)
當x∈〔—∏/2,∏/2〕時,有arcsin(sinx)=x
當x∈〔0,∏〕,arccos(cosx)=x
x∈(—∏/2,∏/2),arctan(tanx)=x
x∈(0,∏),arccot(cotx)=x
x〉0,arctanx=arctan1/x,arccotx類似
若(arctanx+arctany)∈(—∏/2,∏/2),則arctanx+arctany=arctan(x+y/1-xy)