#include <iostream>
#include <algorithm>
using namespace std;
const int M=20;
int a[M][M],sum,n,b[M];
bool solve()
{
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j+1];
}
}
return sum==a[n-1][0];
}
int main()
{
cin>>n>>sum;
for(int i=0;i<n;i++)
{
b[i]=i+1;
}
do{
for(int i=0;i<n;i++)
{
a[0][i]=b[i];
}
if(solve())
{
for(int i=0;i<n;i++)
{
cout<<b[i];
if(i!=n-1)
cout<<' ';
}
break;
}
}while(next_permutation(b,b+n)); //枚举第一行 判断是否有解即可
return 0;
}
poj 3187 next_permutation简单应用
最新推荐文章于 2020-05-27 17:45:19 发布