數字dp的兩種實現方式

2022-09-14 20:15:24 字數 631 閱讀 7423

一.遞推

學的第一種方法就是這個,但是個人認為這種方式在某些題上比較難實現,比如:blance number(hdu-3709).這道題本蒟蒻沒想出怎麼用遞推預處理,反而是記憶化搜尋的方式更容易懂.

以hdu-2089為例,本題的遞推還是比較好實現的.

**二.記憶化搜尋

這種方法就比較爛大街了,基本每道數字dp題,網上的解題報告都是記憶化搜尋實現.基本模板是:

ll dfs(int pos,int sta,bool limit,bool lead)

if(!limit&&!lead) f[pos][sta] = res;

return res;

}

需要說明的是什麼時候才能記憶化,我們要保證下次搜尋記憶化返回的方案數與上次搜尋的狀態相同才行.這裡沒有最高位限制且沒有前導零才能記憶化.以poj 3252為例子,如果我們有前導零也記憶化會導致前後狀態不同返回錯誤的方案數.eg:(00) __ 在有前導零的情況下返回0000,0010兩種方案(0001前三個都被算作前導零不計入).下次我們有最高位限制搜尋10__時,會返回錯誤的方案數2.實際是1001的第三個0在沒有前導零標記下是可以計入的.

題目還不是做了很多,以後再持續總結.

數字dp初步 數字dp的兩種方式

數字dp 一類統計區間 l,r 內某種符合規定的數字個數的題目。特徵是r的範圍會很大,o n 範圍內無法完成。一般而言,解決這類題目有兩種方式,一種是遞推,另一種是記憶化搜尋。遞推 1 利用dp求出陣列f i j 表示有i位,最高位為j的數字中符合要求的數字的個數 2 根據給出的 l,r 利用f統計...

兩種方式實現checkBox readonly功能

今天在做開發的時候遇到了這樣乙個問題 有乙個checkbox選項是不能被改變的。但是checkbox又是沒有readonly屬性的,這個時候我就想到了另外乙個屬性disabled,但是disabled的物件是不能提交到後台的,所以這個又被排除掉了。想了想,只能新增事件來搞定了。於是在checkbox...

TabHost兩種實現方式

第一種 繼承tabactivity,從tabactivity中用gettabhost 方法獲取tabhost。只要定義具體tab內容布局就行了.package com.example.testtabhost import android.os.bundle import android.view.l...