第一次CCF 4 有趣的數(DP)

2021-07-22 17:18:38 字數 1118 閱讀 9669



問題描述

試題編號:

201312-4

試題名稱:

有趣的數

時間限制:

1.0s

記憶體限制:

256.0mb

問題描述:

問題描述

我們把乙個數稱為有趣的,當且僅當:

1. 它的數字只包含0, 1, 2, 3,且這四個數字都出現過至少一次。

2. 所有的0都出現在所有的1之前,而所有的2都出現在所有的3之前。

3. 最高位數字不為0。

因此,符合我們定義的最小的有趣的數是2013。除此以外,4位的有趣的數還有兩個:2031和2301。

請計算恰好有n位的有趣的數的個數。由於答案可能非常大,只需要輸出答案除以1000000007的餘數。

輸入格式

輸入只有一行,包括恰好乙個正整數n (4 ≤ n ≤ 1000)。

輸出格式

輸出只有一行,包括恰好n 位的整數中有趣的數的個數除以1000000007的餘數。

樣例輸入

4

樣例輸出

3

第一次做的時候用的深搜,超時到爆。。

看了題解真的發現自己弱爆了

很簡單的dp,但是不好想

狀態如下:

我們對乙個數的第n位規定:到這一位為止還有哪幾個數字沒有使用。

共有6種狀態:

0--用了2,剩0,1,3

1--用了0,2,剩1,3

2--用了2,3,剩0,1

3--用了0,1,2,剩3

4--用了0,2,3,剩1

5--全部用了

**如下:

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn 1005

#define mod 1000000007

long long dp[maxn][10]=;

int main()

printf("%lld\n",dp[n][5]%mod);

}

4 第一次跳槽

第一次跳槽發生在2002年3月。先廢話感嘆一句,三月,真是個跳槽的 季節,至少對我而言是的。這個時間點,獎金該拿的也拿到手了。再加上被那春暖花開的氣息一薰,有想法的人都開始蠢蠢欲動了。於是,2002年3月,我跳了,2006年三月,我又跳了,2009年3月,俺再次跳了。甚至2002年和2009年到新公...

第一次作業4

includeint main printf n 換行 printf 當遇到問題是,你會選擇 n printf 1.遇到問題,解決問題,不懂得,搜尋式學習,逐個攻破.n printf 2.遇到問題,不高興,然後.就沒有然後了.n printf 3.其他.n printf 你的選擇 n scanf s...

c 第一次實驗 4

一 問題及 檔名稱 yjw001.exe 作 者 楊佳衛 完成日期 2016 年 3 月 10 日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 略 問題描述 輸入2個整數,輸出其正差值。程式輸出 正差值為 問題分析 略 演算法設計 略 三 心得及體會 正差值相當於數學中的絕對值,我們...