欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

杨辉三角

程序员文章站 2022-04-22 10:53:39
...

原文链接:https://www.luogu.com.cn/problem/P1118

杨辉三角

AC代码:

#include<iostream>
#include<string.h>
#include<vector>
#include<math.h>
#include<algorithm>
using namespace std;
int n,sum=0,visit[13];
int c[13][13];
vector<int> vec; 
void dfs(int now,int s){
	int i,j;
	if(s>sum) return ;
	if(now>n){
		if(s==sum){
			for(i=0;i<vec.size();i++){
				cout<<vec[i]<<" ";
			}
			exit(0);
		}
		return ;
	}
	for(i=1;i<=n;i++){
		if(visit[i]==1) continue;
		visit[i]=1;
		vec.push_back(i);
		dfs(now+1,s+i*c[n][now]);
		vec.pop_back();
		visit[i]=0;
	}
}
int main(){
	int i,j;
	cin>>n>>sum;
	c[1][1]=1;
	for(i=2;i<=n;i++){
		for(j=1;j<=i;j++){
			c[i][j]=c[i-1][j]+c[i-1][j-1];
		}
	}
	memset(visit,0,sizeof(visit));
	dfs(1,0);
	return 0;
} 
相关标签: 模拟