字典序求助
查看原帖
字典序求助
251074
学习柯学楼主2023/3/30 22:42
#include<bits/stdc++.h>
using namespace std;
long long n,sum,i, a[15], ans, f[5005];
int t[12][12]={{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1},{1,5,10,10,5,1},{1,6,15,20,15,6,1},{1,7,21,35,35,21,7,1},{1,8,28,56,70,56,28,8,1},{1,9,36,84,126,126,84,36,9,1},{1,10,45,120,210,252,210,120,45,10,1},{1,11,55,165,330,462,462,330,165,55,11,1}};
int dfs(int i)
{
	if(i==n)
	{
		if(ans==sum)
		{
			for(int j=0;j<n;j++)
			{
				cout<<a[j]<<" ";
			}
			exit(0);
		}
	}
	else {
		for(int j=1;j<sum;j++)
		{
			if(f[j]==0)
			{
				ans+=j*t[n - 1][i];
				a[i]=j;
				f[j]=1;
				dfs(i+1);
				f[j]=0;
				ans-=j*t[n - 1][i];
			}
		}
	}
}
int main()
{
	cin>>n>>sum;
	dfs(0);
 	return 0;
}

数据:5 39, 这个代码结果是3 2 1 4 6, 正确结果是4 1 3 2 5 但是3 2 1 4 6的字典序小于4 1 3 2 5,求助

2023/3/30 22:42
加载中...