SCOI2009 windy數 數字DP 模板題

2021-08-25 14:52:48 字數 935 閱讀 3265

windy定義了一種windy數。不含前導零且相鄰兩個數字之差至少為2的正整數被稱為windy數。 windy想知道,

在a和b之間,包括a和b,總共有多少個windy數?

input

包含兩個整數,a b。

output

乙個整數

sample input

【輸入樣例一】 1 10 【輸入樣例二】 25 50

sample output

【輸出樣例一】 9 【輸出樣例二】 20

hint

【資料規模和約定】

100%的資料,滿足 1 <= a <= b <= 2000000000 。

#include#include#include#include#include#include#include#define inf 0x3f3f3f3f

#define rep(i,a,n) for(int i=a;i=a;i--)

#define fori(x) for(int i=0;itypedef long long ll;

const int maxn=1e6+7;

const int mod=1e9+7;

const double eps=1e-8;

using namespace std;

int a[20];

ll dp[20][10];

ll dfs(int pos,int pre,bool lead,bool limit)

else

}if(!limit && !lead && pre!=-1) dp[pos][pre]=ans;

return ans;

}ll solve(ll x)

return dfs(pos-1,-1,true,true);

}int main()

SCOI2009 windy數 題解動態規劃DP

scoi2009 windy數 time limit 1000ms memory limit 165536k total submit 162 accepted 74 description windy定義了一種windy數。不含前導零且相鄰兩個數字之差至少為2的正整數被稱為windy數。windy...

洛谷2657 windy數(數字DP)

數字dp經典題了。考慮直接統計r內的windy數和l 1內的windy數,兩者相減即為l r之間的windy數。考慮dp,記錄當前位以及上一位所填的數,當前是否前面為前導零,以及前面一段是否與原數相同。然後按題意逐位計算即可。然後就會驚訝的發現tle了。所以考慮優化 如果當前沒有受任何限制,那麼可以...

洛谷2657 windy數(數字DP)

數字dp經典題了。考慮直接統計r內的windy數和l 1內的windy數,兩者相減即為l r之間的windy數。考慮dp,記錄當前位以及上一位所填的數,當前是否前面為前導零,以及前面一段是否與原數相同。然後按題意逐位計算即可。然後就會驚訝的發現tle了。所以考慮優化 如果當前沒有受任何限制,那麼可以...