關於數字dp的一些思考

2022-05-25 14:54:13 字數 808 閱讀 3076

大致看完了claris的數字dp的pdf,感覺題目很厚實啊qaq。

然後回過頭再總結一下(感覺也不算總結啊,就是日常吐槽。。。。)

首先數字dp這個東西是有格式的。。。。所以明天早上再找道題來把模板聯絡一下,盡量寫的標準化一點。。

由於數字dp的字符集不多,有些時候可以像狀壓dp一樣直接把每種數的簡單狀態壓在乙個數裡面。

由上面在推廣一下,如果說和乘積什麼的有關的話,這裡面的質數就是有2,3, 5, 7(0 有特殊性。。。),所以就可以單獨來記錄這幾種數的情況。

同樣的,很多時候你dp裡面的狀態可以不用記錄沉積,我們充分利用字符集的優勢以及一般題目有時候會給你乙個比較小的模數的時候,這個時候你就可以在狀態裡直接記錄mod這個數後的值記錄在狀態裡面就好了。

還有就是數字dp有時候不是那麼明顯的時候,就可能給你一些式子,然後你要推式子推出有一些結論,並且這個結論應該(我猜的)有一些特點就是應該看成二進位制或者幾進製的運算,所以我們要大膽的嘗試(這個很重要),這樣才能給我們發現結論提供很多幫助,而且要有意識的去看進製下的運算形式,這樣才好向有機會的方向轉換。

然後還有一些題即使比較綜合的了,要麼就是比較結論的題不知道就涼涼,要麼就是和其他很多東西結合起來的了,就不好總結了。

最後一點,數字dp畢竟和計數有千絲萬縷的聯絡,那麼就必然有組合數,容斥這兩對活寶了。。。這個就很考水平了qaq,從pdf的幾道例題看,最常見的就是前導零考不考慮,要滿足很多個限制就至少滿足乙個,至少滿足兩個的容斥,組合數反而是用來連線dp之間不同的狀態的。。。。這些每道題之間有很大的不同,也不多說了。

總的來說就是分析性質,解決問題。小心推理,大膽嘗試。(看我這個口號怎麼樣。。。。啦啦啦)

關於數字DP的一些思考

題目 輸入乙個整數 n 求1 n這n個整數的十進位制表示中1出現的次數。例如,輸入12,1 12這些整數中包含1 的數字有1 10 11和12,一共出現了5次。int nums 20 int dp 20 2 20 pos表示當前位置,從最高位開始處理 s表示在之前的pos,數字有無小於最高上限 ok...

關於SpringIOC的一些思考

ioc是 依賴倒置原則 的乙個特例,說其是特例,就是說其具有 依賴倒置原則 的性質。依賴倒置原則強調的兩點是 上層模組和下次模組都依賴於抽象,二者之間通過這種抽象的東西聯絡在一起 具體可以依賴於抽象,而抽象不能依賴於具體。我認為spring提倡的 基於介面程式設計 就是為了遵循 依賴倒置原則 其中所...

關於sizeof 的一些思考

今天面試被問到sizeof,回來整理一下。1 定義 sizeof是c c 中的乙個操作符 operator 作用就是返回乙個物件或者型別所佔的記憶體位元組數。msdn上的解釋為 the sizeof keyword gives the amount of storage,in bytes,assoc...