开始觉得像变形的杨辉三角。。
/*
*date:2021.11.29
*author:percation
*/
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
int f[N];
int a[N];
int n,m;
int path[N];
bool vis[N];
bool flag = 0;
void dfs(int u){
if(u == n){
for(int i = 0; i < n; i++){
f[i] = path[i];
}
for(int i = 0; i < n - 1; i++){
for(int j = 0; j < n - i; j++)
f[j] += f[j + 1];
}
if(f[0] == m && !flag){
for(int i = 0; i < n; i++){
cout << path[i] << " ";
}
flag = 1;
cout << endl;
return ;
}
else
return ;
}
for(int i = 1; i <= n; i++){
if(!vis[i]){
path[u] = i;
vis[i] = true;
dfs(u + 1);
vis[i] = false;
}
}
}
int main(){
cin >> n >> m;
dfs(0);
return 0;
}
版权声明:本文为qq_45866781原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。