题目链接:http://poj.org/problem?id=3187
解题报告:
#include <stdio.h> #include <iostream> #include <algorithm> using namespace std; int main() { int n,sum; scanf("%d%d",&n,&sum); int a[15],b[15]; for(int i=0; i<n; i++) a[i]=i+1; do { for(int i=0;i<n;i++) b[i]=a[i]; //int ans=0; for(int i=n;i>1;i--) { for(int j=0;j<i-1;j++) b[j]=b[j]+b[j+1]; } if(b[0]==sum) break; } while(next_permutation(a,a+n)); for(int i=0;i<n;i++) printf("%d ",a[i]); puts(""); return 0; }
next_permutation暴力搜索,POJ(3187)
原文:http://www.cnblogs.com/TreeDream/p/5389043.html