人們選擇手機號碼時都希望號碼好記、吉利。比如號碼中含有幾位相鄰的相同數字、不含諧音不吉利的數字等。手機運營商在發行新號碼時也會考慮這些因素,從號段中選取含有某些特徵的號碼單獨**。為了便於前期規劃,運營商希望開發乙個工具來自動統計號段中滿足特徵的號碼數量。
工具需要檢測的號碼特徵有兩個:號碼中要出現至少3個相鄰的相同數字,號碼中不能同時出現8和4。號碼必須同時包含兩個特徵才滿足條件。滿足條件的號碼例如:13000988721、23333333333、14444101000。而不滿足條件的號碼例如:1015400080、10010012022。
手機號碼一定是11位數,前不含前導的0。工具接收兩個數l和r,自動統計出[l,r]區間內所有滿足條件的號碼數量。l和r也是11位的手機號碼。
輸入檔案內容只有一行,為空格分隔的2個正整數l,r。
10^10 < = l < = r < 10^11
輸出檔案內容只有一行,為1個整數,表示滿足條件的手機號數量。
12121284000 121212855505
樣例解釋
滿足條件的號碼: 12121285000、 12121285111、 12121285222、 12121285333、 12121285550
噁心的數字dp題
六維狀態:第一維表示現在dp到第幾位,第二維表示之前是否小於界限,第三維表示前兩個數,第四維表示前乙個數,第五維表示是否有4和8,第六維表示是否出現連續三個數。
#include
#include
using namespace std;
typedef long long ll;
ll a[20],f[20][15][15][2][2][2],vst[20][15][15][2][2][2];
ll dfs(ll pos,ll op,ll p2,ll p1,ll con,ll bj8,ll bj4)
return ret;
} ll cal(ll x)
return dfs(a[0],1,0,0,0,0,0);
} int main()
{ ll l,r;
cin>>l>>r;
if(l==10000000000ll)cout<
BZOJ 4521 Cqoi2016 手機號碼
人們選擇手機號碼時都希望號碼好記 吉利。比如號碼中含有幾位相鄰的相同數字 不含諧音不 吉利的數字等。手機運營商在發行新號碼時也會考慮這些因素,從號段中選取含有某些特徵的號 碼單獨 為了便於前期規劃,運營商希望開發乙個工具來自動統計號段中滿足特徵的號碼數 量。工具需要檢測的號碼特徵有兩個 號碼中要出現...
bzoj 4521 Cqoi2016 手機號碼
感覺get到了一種數字dp的新姿勢,加一位表示當前要填的數有沒有限制 感覺以前的寫法都太蠢了 這麼寫有兩個地方要注意 1.每dp到一位時需要f i 初始狀態 相當於這位前都是前導零 這道題我把前兩位填了兩個10作為初始狀態 2.因為有了1,所以初始狀態後的第一位不能填0,需要特判 f i j k l...
BZOJ4521 Cqoi2016 手機號碼
人們選擇手機號碼時都希望號碼好記 吉利。比如號碼中含有幾位相鄰的相同數字 不含諧音不 吉利的數字等。手機運營商在發行新號碼時也會考慮這些因素,從號段中選取含有某些特徵的號 碼單獨 為了便於前期規劃,運營商希望開發乙個工具來自動統計號段中滿足特徵的號碼數 量。工具需要檢測的號碼特徵有兩個 號碼中要出現...