poj 3252 Round Numbers(數位dp)
http://poj.org/problem?id=3252
"Round Number "被稱為其二進制形式中0的個數比1的個數多。求[x,y]區間內“Round Number”的個數。
計數的時候最重要的是處理前導零,前導零不算數,因此與SCOI2009一樣,增加一個標記變量first,標志著當前這意味是不是首位,不是首位的話1和0的個數都為0,否則根據枚舉的1或0進行記憶化搜索。
起初設的dp[i][j]表示到第i位之前0和1個數的差值,但這樣不好存儲嗎,下標有可能為負值。可以設dp[i][j][k]表示第i位之前0和1的個數分別為j和k。
#include
#include
#include