題目大意:求合法的1-n的排列數滿足奇數為峰,偶數為谷(n>=2)
法1 dp
狀態表示有點不太好理解,解法參考 **jayye
#include #include #include #include #define ll long long
using namespace std;
const int maxn=1005;
const int mod=1e9+7;
ll dp[maxn][maxn];
int main()
for(int i=2;i<=n;i++)//前i個數
}else}}
ll ans=0;
for(int i=1;i<=n;i++)
cout《法2:組合數學法
參考當晚上台講題的同學 (流弊!)
題解思想:ans[i]表示前i個數合法排列的結果
ans[x+1]就是將x+1固定,在其左邊和右邊各插入x個數
1.要滿足左右獨自合法,這裡代入ans[i],數字大小改變了,但是相對大小關係不變,選i個數的合法排列答案就是ans[i]
2.要滿足x+1這個數所在的位置合法,這個數一定最大,所以必為峰,只能在偶數字,*inv[2]就可以了
#include #include #include #include #define ll long long
using namespace std;
const int n =1005;
const int mod =(int)1e9+7;
int comb[n][n];
ll ans[n];
ll f[n],finv[n],inv[n];//f中存的是階乘,finv中存的是逆元的階乘(分母)
void init()
int main()
ans[i+1]=(ans[i+1]*inv[2])%mod;
}cout
}
pgAdmin4 重置布局
pgadmin4 是網頁版客戶端,而且在其網頁上可以通過拖拽改變布局。當布局混亂時可以通過 選單file reset layout功能來重置。如果這篇隨筆只是為了說以上這句話就沒必要了,而且你根據搜尋引擎照過來肯定也不是為了這麼簡單的功能。我遇到的情況是file選單消失了,我的右手不受控制的一頓亂拽...
10 17T4 位置前字尾 map查詢
給出1 n的乙個排列,統計該排列有多少個長度為奇數的連續子串行的中位數是b。中位數是指把所有元素從小到大排列後,位於中間的數。第一行為兩個正整數n和b 第二行為1 n 的排列。輸出乙個整數,即中位數為b的連續子串行個數。輸入1 5 41 2 3 4 5 輸入2 6 31 2 4 5 6 3 輸入3 ...
第4周 專案3 1 單鏈表應用 逆置
檔案及 檔名稱 test.cpp 作 者 焦夢真 完成日期 2015年10月5日 版 本 號 v1.0 問題描述 設計乙個演算法,將乙個帶頭結點的資料域依次為a1,a2,an n 3 的單鏈表的所有結點逆置,即第乙個結點的資料域變為an,最後乙個結點的資料域為a1。輸入描述 無 程式輸出 逆置後的資...