楊輝三角
ps:其中的有幾個性質特別有意思
2.我們可以利用楊輝三角的一些簡單知識來解決問題
如下問題:
寫出乙個11至nn的排列a_iai,然後每次將相鄰兩個數相加,構成新的序列,再對新序列進行這樣的操作,顯然每次構成的序列都比上一次的序列長度少1,直到只剩下乙個數字位置。下面是乙個例子:
3,1,2,4
4,3,6
7,9最後得到16這樣乙個數字。
現在想要倒著玩這樣乙個遊戲,如果知道n,知道最後得到的數字的大小sum,請你求出最初序列a,為1至n的乙個排列。若答案有多種可能,則輸出字典序最小的那乙個。
輸入格式:
兩個正整數n,sum。
輸出格式:
輸出包括1行,為字典序最小的那個答案。
1.分析:
對於這個問題:我們先看n的序列。
如果所這一行的n個數是a,b,c....(n個)
如果說n是4,那麼sum=a+3b+3c+d。
如果說n是5,那麼sum=a+4b+6c+4d+e。
狀態轉移方程: c(r,n)=(n-r+1)*c(r,n-1)/r; 組合數
#include#include #include #include using namespace std;
int ha[100],flag,yh[13][13];
bool v[100];
int n,sum;
void print()
void dfs(int step,int ans)
for(int i = 1;i <= n;i++) }}
int main()
簡單粗暴的暴力搜尋**,可以把是個資料全部ac。
解釋一下**:
1.ha陣列代表了記錄數字的排列順序
2.我們可以能簡單地對第乙個滿足條件的數字組合進行輸出,這就是字典序輸出的最小值
3.ans+i*yh[n][step] 表示前i+1個數字的最大數值
4.在主函式裡面,用兩個for迴圈對yh進行乙個楊輝三角的規律輸入
python楊輝三角 楊輝三角I II
給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...
楊輝三角相關性質以及組合數
楊輝三角 1 1 11 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 楊輝三角的性質 第n行的元素個數有n個 第n行的所有元素之和為2 n 1 第n行第m個數的值為c n 1,m 1 其中c為組合數 a b n 展開後的各項係數等於第n 1行的值 第n行第m個數的奇偶判斷,...
Java 楊輝三角
public class yanghui 生成指定行數的楊輝三角形 param lines 楊輝三角形的行數 public void printyanghui int lines if lines 30 int line new int lines int maxlen getmaxlen line...