問題描述
試題編號:
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個整數,輸出其正差值。程式輸出 正差值為 問題分析 略 演算法設計 略 三 心得及體會 正差值相當於數學中的絕對值,我們...