首页 > 其他 > 详细

P1118 [USACO06FEB]数字三角形`Backward Digit Su`…

时间:2019-10-08 11:00:51      阅读:55      评论:0      收藏:0      [点我收藏+]

杨辉三角的带权应用,杨辉三角用组合数推,(记得从二开始),什么数组该赋什么值想好了再写

#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`…

原文:https://www.cnblogs.com/jindui/p/11634170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!