HDU 4734 基礎數字dp(遞推)

2021-07-11 22:13:23 字數 702 閱讀 9580

以前成都賽區的題目。。

題意很明顯,就是有乙個f(x)的函式,然後給你乙個a和b求出在0~b中有多少小於等於f(a)的,

預處理出來dp[i][j][k]中有多少小於等於k的。。這裡採用遞推。。因為我太弱了。遞迴總是寫錯。。還需慢慢加深理解。。

ps.**很醜。。還是推薦遞迴。。實在不會遞推也可以。。蒟蒻加油!

#include #include using namespace std;

int dp[12][10][10000];

int p[11]=;

int init()

for(int i=2;i<=10;i++)}}

}int num[20];

int cal(int x,int lim)

int ret=0,k=0,idx=1;

for(int i=1;i0;i--)

return ret;

}int f(int x)

return ret;

}int main()

{ int t;

cin>>t;

init();

int cas=1;

while(t--){

int a,b;

cin>>a>>b;

int lim=f(a);

if(lim==0||b==0){

cout<<"case #"<

HDU 4734 基礎數字dp(遞推)

以前成都賽區的題目。題意很明顯,就是有乙個f x 的函式,然後給你乙個a和b求出在0 b中有多少小於等於f a 的,預處理出來dp i j k 中有多少小於等於k的。這裡採用遞推。因為我太弱了。遞迴總是寫錯。還需慢慢加深理解。ps.很醜。還是推薦遞迴。實在不會遞推也可以。蒟蒻加油!include i...

hdu4734 數字dp(減去的藝術)

題目大意 求區間 l,r 內滿足數x的f x f a 的數的個數。對於乙個n位的數 anan 1an 2.a1 f x an 2 n 1 an 1 2 n 2 a1 1.題解 首先我們肯定要維護乙個狀態sum表示列舉到pos位數的前面的數字的f x 值,最後判斷一下是否大於f a 就行了。因為f x...

HDU4734,F x (數字DP 優化)

本題思路和dp狀態不難求,比較難的是該怎麼優化。數字dp的優化可參考下面的部落格 簡單的說,一般數字dp的優化有兩種方法 將memset放置在多組資料外面,即程式每執行一次只需memset一次,這種方法要求,題目所給的約束條件是每個數本身的屬性,與輸入無關。相減,這種方法是稍微改變一下狀態,使得題目...