P1118 [USACO06FEB]Backward Digit Sums G/S(杨辉三角)

P1118 [USACO06FEB]Backward Digit Sums G/S(杨辉三角)_第1张图片

 这个数字三角形就是著名的杨辉三角

P1118 [USACO06FEB]Backward Digit Sums G/S(杨辉三角)_第2张图片

这样我们与处理好杨辉三角的系数

一步步递归求解 a,b,c,d,e 的字典序最小即可,即最先搜索到的 

const int N=22+5;

    int n,m,t;
    int i,j,k;
    int minn;
    bool vis[N];
    int triangle[N][N]; //杨辉三角的系数
    int a[N]; //记录答案

void DFS(int step,int sum) //第一层中的第 step 个数,目前总和为 sum
{
    if(sum>m) return ;
    if(step>n){
        if(sum==m){
            for(i=1;i<=n;i++) cout<>n>>m){
        triangle[1][1]=1;
        for(i=2;i<=n;i++){
            for(j=1;j<=i;j++){
                triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];
            }
        }
        DFS(1,0);
    }
    //PAUSE;
	return 0;
}

 

你可能感兴趣的:(洛谷,#,深搜的剪枝技巧)