标签:++ names scanf n+1 turn cst exit namespace 数组
杨辉三角的带权应用,杨辉三角用组合数推,(记得从二开始),什么数组该赋什么值想好了再写
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int f[13][14],n,summ,sum,w[14],ff;
bool vis[13];
void zu_he(){
for(int i=1;i<=n;i++) f[i][1]=1;
for(int i=2;i<=n;i++){
for(int j=2;j<=i;j++){
f[i][j]=f[i-1][j]+f[i-1][j-1];
}
}
}
void dfs(int num){
if(summ>sum) return;
if(num==n+1){
if(summ==sum){
for(int i=1;i<=n;i++)
printf("%d ",w[i]);
ff=2;
// exit(0);
}
return;
}
if(ff==2) return;
for(int i=1;i<=n;i++){
if(vis[i]){
vis[i]=0;
w[num]=i;
summ+=(f[n][num]*i);
dfs(num+1);
if(ff==2) return;
summ-=(f[n][num]*i);
vis[i]=1;
}
}
}
int main(){
scanf("%d%d",&n,&sum);
for(int i=1;i<=n;i++) vis[i]=1;
zu_he();
dfs(1);
return 0;
}
P1118 [USACO06FEB]数字三角形`Backward Digit Su`…
标签:++ names scanf n+1 turn cst exit namespace 数组
原文地址:https://www.cnblogs.com/jindui/p/11634170.html