數字dp經典題了。
考慮直接統計r內的windy數和l-1內的windy數,兩者相減即為l~r之間的windy數。
考慮dp,記錄當前位以及上一位所填的數,當前是否前面為前導零,以及前面一段是否與原數相同。
然後按題意逐位計算即可。
然後就會驚訝的發現tle了。。。。。。
所以考慮優化:如果當前沒有受任何限制,那麼可以直接記錄下當前位置的值,記憶化搜尋。
#includeusing namespace std;
typedef long long ll;
const int maxn=15;
ll l,r;
int num[maxn],cnt;
int dp[maxn][maxn];
ll read()
int dp(int pos,int last,int iszero,int limit)
} else
} if(!iszero&&!limit)
return dp[pos][last]=ret;
return ret;
}int solve(int x)
return dp(cnt,0,1,1);
}int main()
洛谷2657 windy數(數字DP)
數字dp經典題了。考慮直接統計r內的windy數和l 1內的windy數,兩者相減即為l r之間的windy數。考慮dp,記錄當前位以及上一位所填的數,當前是否前面為前導零,以及前面一段是否與原數相同。然後按題意逐位計算即可。然後就會驚訝的發現tle了。所以考慮優化 如果當前沒有受任何限制,那麼可以...
洛谷 P2646 數數zzy
zzy自從數學考試連續跪掉之後,上數學課就從來不認真聽了 事實上他以前也不認真聽 於是他開始在草稿紙上寫寫畫畫,比如寫一串奇怪的字串。然後他決定理 性 愉 悅 一下 統計這串字串當中共有多少個為 zzy 的子串行 注意是子串行而非子串 但是由於他寫的字串實在是太長啦,而且他是個超級大蒟蒻,根本就數不...
洛谷P3413 萌數 數字dp
給出兩個len 1e3 len leq1e3 len 1e 3的數字串,然後求問兩個數字之間有多少個萌數,萌數的定義是存在長度至少為2 22的回文子串。答案對1e9 7 1e9 7 1e9 7取模。正難則反 計算不是萌數的個數,由高位往低位列舉,記錄下這一位的前一位和前兩位,保證當前位和前一位以及前...