problem description
杭州人稱那些傻乎乎粘嗒嗒的人為62(音:laoer)。
杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。
不吉利的數字為所有含有4或62的號碼。例如:
62315 73418 88914
都屬於不吉利號碼。但是,61152雖然含有6和2,但不是62連號,所以不屬於不吉利數字之列。
你的任務是,對於每次給出的乙個牌照區間號,推斷出交管局今次又要實際上給多少輛新的士車上牌照了。
input
輸入的都是整數對n、m(0
output
對於每個整數對,輸出乙個不含有不吉利數字的統計個數,該數值佔一行位置。
sample input
1 1000 0
sample output
80
**:
#include#include#includeusing namespace std;
const int maxn=10;
int a,b; // 區間[a,b]
int bit[maxn]; // 儲存n的每一位數字;
int dp[maxn][2]; // 記錄前i位符合要求的個數;[0/1]記錄前一位是否為6;
// is6記錄的是上一位是不是6;
// ismax記錄的改位是不是最高位;
// 如果是下一位izhineng取0~bit[len],否則取0~9;
int dfs(int len,bool is6,bool ismax)
if(!ismax) dp[len][is6]=cnt;
return cnt;
}int solve(int n)
return dfs(pos,false,true);
}int main()
return 0;
}
數字DP HDU 2089 不要62
簡單的數字dp 數字dp的簡單思想 從低位到高位開始列舉 每次狀態有兩種 即 到當前位與上限n一模一樣 和 到當前位已經小於n 那麼就可以列舉當前位進行轉移 因為 到當前位與上限n一模一樣 只有一種狀況 所以不特意儲存 中dp陣列都表示 到當前位已經小於n dp 2 表示 已經出現62 dp 1 表...
數字DP Hdu 2089 不要62
ps 博主又水blog,是佳龍大神叫我幹的。乙個數被稱為吉利 手動滑稽 當且僅當其不含4和62。多次詢問乙個區間的吉利的個數。這題應該算是數字dp的裸題吧。考慮求出乙個固定長度出現的吉利數,然後分別考慮每一位就可以了。設f i 0 1 2 表示長度為 i 的吉利個數,首位為2的吉利個數,不吉利的個數...
數字DP HDU 2089 不要62
include include include include include include include include include include include include define inf 0x3f3f3f3f using namespace std typedef long...