題目初步轉化出條件:n為1或者2的時候是特殊情況,因為對於燈成環來說,對於這兩個特殊情況是無效的
進一步轉化:這個題一定是有規律可循的,我們可以看到,n取得是1e6,一般就是寫乙個o(n)的演算法
對於有n個燈的情況中,我們可以發現,當n-1與1是不同顏色的情況下,n這個位置只有一種可能,當n-1與1不同的時候,不就是f[n-1]這種情況嗎?當n-1與1相同時,那麼n-2一定與1不同,那麼這不又是f[n-2]這種情況嗎?故得動態方程
f[n] = f[n-1] + f[n-2] * 2;
7-17 mmh學長的三色燈 (20分)
mmh學長的三色燈
mmh學長有n個能發出紅,綠,藍三種顏色的燈泡。 mmh學長把這些燈泡排成一排,每個燈泡在某一時刻 只能發出一種顏色的光。 現在要求任何相鄰的燈泡不能發出相同顏色的光,並且 首尾兩個燈泡發出光的顏色也不能相同,問總共有多少 發光方案滿足條件。
有多組輸入,每組輸入乙個正整數n(n≤1000000),表示mmh學長持有的 三色燈泡的個數。
每個輸入輸出乙個正整數,每個輸出佔一行,表示有多少種 方案滿足相鄰兩個燈泡不能發出相同顏色的光,首尾兩個燈 泡也不能發出相同顏色的光。由於該數可能過大,你只需要 輸出答案對1e9+7取模的結果即可。
1
2
3
6
ac
#include#include#includeusing namespace std;
#define maxn 1000005
typedef long long ll;
ll dp[maxn];
ll mod = 1000000007;
int n;
int main()
while(cin>>n)
cout
}
7 17常用類上
string 1 不可變 2 格式 3 比較字串 值,比較引用 new 位置 4 equal比較引用的值 5 常用方法例項 一public class strin 二 public class strin1 6 string s string.valueof j 將j轉為obj型,再轉為string...
python3 mmh3安裝及使用
雜湊方法主要有md sha murmur cityhash mac等幾種方法。mmh3全程murmurhash3,是一種非加密的雜湊演算法,常用於hadoop等分布式儲存情境中,在anaconda中安裝使用命令 pip install mmh3報錯如下 microsoft visual c 14.0...
7 17 爬動的蠕蟲
7 17 爬動的蠕蟲 15 分 一條蠕蟲長1寸,在一口深為n寸的井的底部。已知蠕蟲每1分鐘可以向上爬u寸,但必須休息1分鐘才能接著往上爬。在休息的過程中,蠕蟲又下滑了d寸。就這樣,上爬和下滑重複進行。請問,蠕蟲需要多長時間才能爬出井?這裡要求不足1分鐘按1分鐘計,並且假定只要在某次上爬過程中蠕蟲的頭...