題解計算斐波那契數列的值,n最大為45所以不用高精度直接用long long肯定可以存下。
題解每一次都面臨要上幾次台階的問題,一共有三種選擇。使用深度優先搜尋來做這道題。每乙個傳遞的引數n是還剩幾個台階,只有最後所有的台階都走完了才能算一種方案。遞迴return的條件是n為0或者是負數的情況。
題解每一次將繩子分為三段這三段必須都是整數,選取中間的一段繼續分割。一直分割小於等於2m,問這個繩子最長是多少。
反向思考給定乙個繩子讓運算元最多那麼最短繩長為1m,然後最長繩長等於第二長的繩長或者只比第二長繩子多一。遞推公式為:f
ff(x
xx)=max,整理後得出f
題解這題考慮的是最差情況,即每道題的正確答案都是最後乙個選項,所以第i
ii題選a
ia_i
ai次才能選到正確答案.所以每一次都需要a
ia_i
ai-1次試錯。而每一次試錯都需要把前面的i
ii-1次正確答案重新選擇一遍。所以遞推公式為:
f
if_i
fi=fi−
1f_fi−1+a
ia_i
ai+(a
ia_i
ai-1)*(i
ii-1)
f
if_i
fi表示第i
ii次選出正確答案的選題次數。
ans +
= a[i]
+(a[i]-1
)*(i -1)
//ans代表前i - 1道題的選擇總數
題解對於每個格仔,能走的路徑只有下和右,所以 對於每個格仔路徑數為上和左路徑數的和。但是由於有障礙所以有些點需要特判一下。dp [i
ii][j
jj]為到達(i
ii,j
jj)點的方案數,如果這個點是障礙點dp[i
ii][j
jj]=0,如果不是障礙點則滿足如下方程:dp[i
題解這道題的題解點這裡,絕對不是我懶的寫的原因
關於第二次訓練賽
第二次訓練賽甚至比第一次還要差,開始做的時候,因為在調並查集的題目,一時忘了比賽開始時間,這又導致了在開始便就輸在了起跑線上,接下來看a,20分鐘後想到了bfs,不過和p商量後,發現他在吳澤軍的書上找到了原題!用優先佇列做的,感覺很好,在理解了之後,此時時間差不多乙個小時了,開始敲,當然不想用書上的...
第二次周賽題解
e題,不懂的看新生訓練題解 includeint main return 0 d題,乙個預處理就ok includeint a 1000005 int main int t scanf d t while t return 0 c題,打表找下規律,會發現是以1 1 2 0 2 2 1 0為迴圈 in...
第二次周賽題解
位址 a 組成三位數 列舉第乙個數,第二個數第三個數根據關係算出來,然後判斷是否合法就行了。include define rep i,a,b for int i a i b i using namespace std int vis 10 bool fun int n return true boo...