POJ 3187 Backward Digit Sums
来源:互联网 发布:网络祭奠亲人 编辑:程序博客网 时间:2024/05/10 11:26
简单搜索~~~
#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int MAXN = 20;int C[MAXN][MAXN];int path[MAXN], ans[MAXN];bool visit[MAXN];int N, M;bool flag;void Init(){ memset(C, 0, sizeof(C)); C[0][0] = 1; for(int i = 1; i <= 10; ++i) { C[i][0] = C[i][i] = 1; for(int j = 1; j < i; ++j) { C[i][j] = C[i-1][j-1] + C[i-1][j]; } }}void dfs(int cnt){ if(flag) return; if(cnt == N) { int temp = 0; for(int i = 0; i < N; ++i) { //cout << path[i] << " "; temp += C[N-1][i] * path[i]; } //cout << " " << temp << endl; if(temp == M) { flag = true; for(int i = 0; i < N; ++i) { ans[i] = path[i]; } } return ; } for(int i = 1; i <= N; ++i) { if(!visit[i]) { path[cnt++] = i; visit[i] = true; dfs(cnt); cnt--; visit[i] = false; } } return ;}int main(){ //freopen("aa.in", "r", stdin); //freopen("bb.out", "w", stdout); Init(); while(cin >> N >> M) { memset(visit, false, sizeof(visit)); flag = false; dfs(0); cout << ans[0]; for(int i = 1; i < N; ++i) { cout << " " << ans[i]; } cout << endl; } return 0;}
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ-3187-Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ-3187-Backward Digit Sums
- poj 3187 : Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ-3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- poj 3187 Backward Digit Sums
- POJ 3187 Backward Digit Sums
- Backward Digit Sums(POJ-3187)
- IOS深入学习(16)之Message(消息机制)
- 这大半年
- 旧域名做新站怎么处理
- 导出到excel多sheet的两种方法
- 通向架构师的道路(第二十七天)IBM网格计算与企业批处理任务架构
- POJ 3187 Backward Digit Sums
- while(cin>>val)的调用机理
- WCDMA空中接口的信道
- ffmpeg编程(二)
- django sqlite
- 树莓派下使用FTDI驱动问题
- const用在成员函数后与成员函数前的区别
- hibernate调用存储过程
- Ios refreshView 上拉刷新