hdu 3555數字DP 入門題

2021-07-04 16:29:45 字數 624 閱讀 8372

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

#define inf 0x3f3f3f3f

#define eps 1e-10

#define maxl 30010

#define mem(i,j) memset(i,j,sizeof(i))

ll d[20][3];// d[i][0]表示的是的那個乙個數的長度為i的時候不包含49的數目

//d[i][1]表示的是長度為i且不包含49但是第一位是9的數目 這裡是d[i][0]的子集

//d[i][2]表示的是長度為i但是包含49的數的數目

int digit[20];

void init()

}int main()

bool flag=false;//flag的狀態是記錄前面有沒有出現49的情況

int last=0;

for(int i=len ;i>=1;i--)

cout<}

}

數字dp入門題hdu 3555

題意就是簡單的給定乙個n求1 n所有含有49的數字 數字dp入門題可以當作模板改。pos表示到pos位,pre為上一位的數字用來判斷是否可以得到49,sta表示狀態,無非就是如果該為是4的時候和不是4的時候,對下一位dp的影響。limit表示是否到了限制如213則百位是2則十位只能為0,1。這題網上...

hdu 3555 數字dp入門

題意 給定乙個long long型別能夠存下的數字n,統計1 n之間含有49的數字的個數 思路 初始版本 需要記錄當前位置,前一位置放了那個數字,當前是否已經包含49,是否有上界這四個資訊,也就是dfs的四個引數。dfs pos,pre,istrue,limit 其實這種做法有點相當於把普通的數字d...

hdu3555 數字dp 入門

題目大意 給乙個數字n,範圍在1 2 63 1,求1 n之間含有49的數字有多少個。思路 狀態轉移 dp i 0 代表長度為 i 並且不含有49的數字的個數 dp i 1 代表長度為 i 並且不含有49,但是最高位是9的數字的個數 dp i 2 代表長度為 i 並且含有49的數字的個數。陣列 a i...