POJ3187 Backward Digit Sums 枚举
2014-07-13 18:08
369 查看
这题比较简单,直接枚举
#ifndef HEAD #include <stdio.h> #include <vector> #include <math.h> #include <string.h> #include <string> #include <iostream> #include <queue> #include <list> #include <algorithm> #include <stack> #include <map> using namespace std; #endif // !HEAD char BDSVisited[11]; int BDSVALUE[11][11]; bool BDSFind = false; void DFSB(int iDepth, int N, int M) { if (BDSFind) { return; } for (int i = 1; i <= N; i++) { if (BDSFind) { return; } if (BDSVisited[i] == 0) { BDSVALUE[1][iDepth] = i; for (int j = 2; j <= iDepth;j++) { BDSVALUE[j][iDepth - j + 1] = BDSVALUE[j - 1][iDepth - j + 1] + BDSVALUE[j - 1][iDepth - j + 2]; } if (BDSVALUE[iDepth][1] == M && iDepth == N) { BDSFind = true; return; } if (BDSVALUE[iDepth][1] >= M) { continue;; } BDSVisited[i] = 1; DFSB(iDepth + 1, N, M); BDSVisited[i] = 0; } } } int main() { #ifdef _DEBUG freopen("e:\\in.txt", "r", stdin); #endif int n, m; scanf("%d %d\n", &n, &m); memset(BDSVisited, 0, sizeof(BDSVisited)); memset(BDSVALUE, 0, sizeof(BDSVALUE)); BDSFind = false; DFSB(1,n, m); for (int i = 1; i <= n;i++) { printf("%d ", BDSVALUE[1][i]); } return 0; }
相关文章推荐
- poj3187 Backward Digit Sums(枚举)
- poj3187-Backward Digit Sums(枚举全排列)
- poj3187 Backward Digit Sums---dfs暴力枚举
- POJ3187 Backward Digit Sums【全排列】
- poj3187 Backward Digit Sums
- POJ3187-Backward Digit Sums
- POJ3187 Backward Digit Sums 【暴搜】杨辉三角
- POJ3187 Backward Digit Sums
- poj3187 Backward Digit Sums
- 【POJ】3187 - Backward Digit Sums(枚举)
- POJ3187---Backward Digit Sums
- POJ-3187 Backward Digit Sums (暴力枚举)
- POJ3187 Backward Digit Sums 【暴搜】
- POJ3187 Backward Digit Sums
- POJ3187-Backward Digit Sums-穷竭搜索
- POJ3187 Backward Digit Sums 【暴搜】
- 【暑假复习】【搜索】POJ3187:Backward Digit Sums
- POJ 3187 Backward Digit Sums 枚举水~
- POJ 3187 Backward Digit Sums 枚举水~
- poj3187 Backward Digit Sums