有乙個長度為n的序列a,已知a[1]=a[n]=1,且對於2 <= x <= n,a[x] / a[x-1]是以下三個數字之一 [ 1,-2,0.5 ],問有多少種不同的序列滿足題意。
兩個序列不同當且僅當它們有至少乙個位置上的數字不同,序列a可以為任何實數。
乙個整數 表示n (1<= n <= 1e3)
乙個整數 表示答案模109
+7示例1
複製
5
複製
7題意 : 給你乙個乙個 n ,表示要構造的序列的長度,問最終有多少種構造序列的方式。
思路分析:注意觀察要構造的序列有個特點,就是第乙個和最後乙個元素都是 1,所以說再變換的過程中,序列擴大和縮小的次數應該是相同的
有個很坑的地方,就是再用逆元求解的時候,分母的兩個數都是取模得來的,應該分別求逆元才對
**示例:
#define ll long longconst ll maxn = 1e6+5;
const ll mod = 1e9+7;
ll pp[1005];
void init()}
ll inv(ll x, ll cnt)
return ans;}
ll c(ll n, ll m)
int main()
printf("%lld\n", sum);
return 0;
方法二:
直接套用組合數學的公式即可。
#define ll long longconst ll maxn = 1e6+5;
const ll mod = 1e9+7;
ll c[1005][1005];
void init()
}}int main()
printf("%lld\n", sum);
return 0;
}
檔案操作中的乙個坑點
筆者在做專案時,遇到乙個有意思的bug,用udp接收裝置傳送的網路資料報,在這個過程中,由於udp的不可靠性,會發生丟包和包亂序的現象,筆者思路將丟失的資料報包號記錄下來,全部用0去填充,然後讓裝置重新傳送資料報。當筆者收到丟失的資料報後,讓它插入到正確的位置,但是,總是感覺插入完成的有問題,總是花...
Python的乙個坑
今天發現了python乙個坑。我們知道python中函式跟c 一樣,可以設定預設引數,比如 def func x,y 1 print x,y func x 10 10 1 y有乙個預設值1,所以函式呼叫的結果是列印10 1 但是如果預設值是這樣的 class food def init self s...
ImmersionBar的乙個坑
今天寫 時發現殺掉activitya 1後再啟動activitya 2時,因為activitya 2的immersionbar先初始化了,之後activitya 1的ondestroy才執行,而關鍵點是發現ondestroy中確實是需要殺掉的activitya 1,而immersionbar也不是單...