1. 程式人生 > >【DFS】神祕數列

【DFS】神祕數列

這裡寫圖片描述 這裡寫圖片描述

#include<cstdio>
int a[101][101]; 
int total=0,n,m;

void input()//讀入
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++) scanf("%d",&a[n+1][i]);
}

void dfs(int dep)
{
    if (dep==1)//如果只剩一個數
    {
        if (a[2][1]==m) total++;//方案數加一
        return;//退出
    }
    for (int i=1;i<=dep-1
;i++) { for (int j=1;j<=i-1;j++) a[dep][j]=a[dep+1][j];//i之前的數列往前推 a[dep][i]=(a[dep+1][i]-a[dep+1][i+1]);//相減 for (int j=i+2;j<=dep+1;j++) a[dep][j-1]=a[dep+1][j];//i之後的數列往前推 dfs(dep-1); } } int main() { input();//讀入 dfs(n);//深搜 printf
("%d",total);//輸出方案數 return 0; }