CQOI2016 手機號碼

2022-05-09 10:48:11 字數 875 閱讀 1910

嘟嘟嘟

這題一看就是數字dp。

我寫數字dp,一般是按數字dp的格式寫乙個爆搜,然後加一點記憶化。

不過其實我一直不是很清楚記憶化是怎麼加,感覺就是把dfs裡的引數都扔到dp陣列裡,好像很暴力啊。

這題有乙個坑點就是數字必須是**號碼,也就是11位且沒有前導零。因此關於前導零的處理是最高位不能為0,剩下的都可以。

">#include#include#include#include#include#include#include#include#includeusing namespace std;

#define enter puts("")

#define space putchar(' ')

#define mem(a, x) memset(a, x, sizeof(a))

#define in inline

typedef long long ll;

typedef double db;

const int inf = 0x3f3f3f3f;

const db eps = 1e-8;

//const int maxn = ;

inline ll read()

inline void write(ll x)

int num[15], cnt = 0;

ll dp[15][10][10][2][2][2][2];

in ll dfs(int now, int pre1, int pre2, bool _lian, bool _4, bool _8, bool _zero, bool _max)

in ll solve(ll n)

int main()

CQOI 2016 手機號碼

傳送門 求出 l,r l,r l,r 中,滿足 數的長度為 11 1111 號碼中要出現至少 3 33 個相鄰的相同數字 號碼中不能同時出現 8 88 和 4 44 的數的個數。1 010 l r 10 1110 l r 10 1010 l r 10 11。算是一道比較簡單的數字dp題。第乙個條件,...

CQOI2016 手機號碼

題目描述 人們選擇手機號碼時都希望號碼好記 吉利。比如號碼中含有幾位相鄰的相同數字 不含諧音不吉利的數字等。手機運營商在發行新號碼時也會考慮這些因素,從號段中選取含有某些特徵的號碼單獨 為了便於前期規劃,運營商希望開發乙個工具來自動統計號段中滿足特徵的號碼數量。工具需要檢測的號碼特徵有兩個 號碼中要...

CQOI2016 手機號碼

遞推版的數字dp 絕對的暴力美學 我們設 dp l i j 0 1 0 1 0 1 表示到了第 l 位,這一位上選擇的數是 i l 1 位選擇的數是 j 第乙個 0 1 代表 4 沒有 有出現過,第二個 0 1 代表 8 沒有 有出現過,第三個 0 1 代表連續三位沒有 有出現過 於是轉移很簡單了 ...