演算法競賽高階指南 0x00

2022-05-03 17:18:07 字數 1361 閱讀 6661

快速冪模板,寫一下快速冪的原理。

我們知道,乙個數\(n\)在二進位制(也可以是其他進製)下可以被表示為\(a_1+a_2*2^1+a_3*2^2+...+a_m*2^\)。那麼我們可以考慮將其分拆成二進位制狀態下的每一位,然後做冪運算。這樣做的時間複雜度為\(o(log_2 n)\)。

實現的過程類似於倒過來的分治(當然也可以直接分治實現),原理基於以下的式子。

對於k為偶數,\(n^k=(n^2)^\)。

對於k為奇數,\(n^k=n*(n^2)^\)

本質上和上一道題一樣,注意資料範圍即可。

狀壓dp。

\(f[i][j]\)表示在經過的點狀態為i,當前位置在j上路徑長度的最小值。

列舉中轉點進行轉移即可。

dfs,在每個狀態都輸出一下。

dfs,限制結束長度。

dfs。

運用差分數列性質的妙題。

眾所周知,差分就是字首和的逆運算,當相鄰兩個元素相同的時候,差分數列裡對應的一項會變為0,

當我們將某乙個區間加上或減去1的時候,差分數列裡只有兩項變化,所以這就是個結論題了。

統計差分序列裡正數之和與負數之和的絕對值(不包括第一項),取最大值就是第乙個答案,差的絕對值+1就是第二個答案。

小學奧數結論題,中間最小。下面給出證明:

假設倉庫的座標為\(a_1,a_2,...,a_n\),選擇的位置為\(x\),那麼本題等價於求

\(|x-a_1|+|x-a_2|+...+|x-a_n|\)

的最小值。

假設n為奇數,那麼我們可以將除了\(a_\)的項兩兩配對,對於每乙個配對\((a_k,a_)\),\(|x-a_k|+|x-a_|\)的最小值在\(k\leq x\leq (n+1-k)\)的時候取到。

顯然當\((n-1)/2\leq x\leq (n+3)/2\)的時候對於除了\(a_\)的項之和取到了最小值,那麼只要取\(x=a_\)就可以取到整個算式的最小值了。

當n為偶數時同理之。

首先明確乙個問題:選a和放棄a選b本質上不存在優劣之分(不考慮對其他牛的影響),因此盡量滿足當前牛肯定不會有錯。

我們將牛的下限從大到小排序,然後將防曬霜也從大到小排序,對於每一頭牛,我們遍歷防曬霜尋找小於它上限且最大的防曬霜。

正確性證明:

假如對於現在這頭牛有更好的選法,那顯然只能選更小的,那麼就浪費了現在的這個選擇。浪費=沒那麼好,q.e.d

這道題第一眼有點複雜,但其實可以進行簡化。

那麼本題即可轉換為求對於一系列線段,使所有線段都包含點的最少數量。

將線段對於左端點排序,然後記錄最右側的點。

如果現在的線段的左端點大於最右側的點,那麼只能新加乙個點。

反之,盡可能將最右側的點向右移(在不違背已有線段的前提下)。

正確性過於顯然。

0x00基本演算法(練習)5 防線(題解)

題目鏈結 題意 達達學習數學競賽的時候受盡了同仁們的鄙視,終於有一天.受盡屈辱的達達黑化成為了黑暗英雄怪獸達達。就如同中二漫畫的情節一樣,怪獸達達打算毀掉這個世界。數學競賽界的精英 lqr 打算阻止怪獸達達的陰謀,於是她集合了一支由數學競賽選手組成的超級行動隊。由於隊員們個個都智商超群,很快,行動隊...

推薦系統實踐 0x00 序

最後還是找到了自己算是滿意的工作,也準備開始新的研究領域,推薦演算法。由於我之前的研究內容主要是圍繞著cv展開,所以還是需要提前學習一下推薦演算法的知識。目前選擇了 推薦系統實踐 這本書,看中了它能夠將知識點和 相結合的優勢,並不枯燥也有一部分專案實踐等等。這篇文章就算作自己開始讀這本 推薦系統實踐...

《演算法競賽高階指南》0x32約數

求解 1,n 之間的最大的反素數,有性質 這個反素數是質因數個數最多的數中最小的乙個。證明 假設有乙個數質因數個數比它多,如果在他前面,不滿足反素數的定義,如果在他後面,一定可以找到第乙個質因數比它大的數,這個數作為結果更好,反證可知,這個數質因數一定是最多的 反證 假設有質因數與他的個數一樣但是比...