数学题
n个人参加ACM比赛。比赛有n道题目,裁判程序根据选手解正确的题数评名次,可以有并列名次。问有多少种可能的获奖方案?
输入格式
第一行1个正整数n, 0<n<16
输出格式
方案数。
输入:
4
输出:
75
思路:
1.递推
2.暴搜+全排列
超时代码:
#include<iostream>
#include<fstream>
#include<algorithm>
#include<cmath>
#include<string>
#include<map>
using namespace std;
int n,sum,a[15];
bool check()
{
int f[15]={0},k=0;
for(int i=1;i<=n;i++)
f[a[i]]++,k=max(k,a[i]);
for(int i=1;i<=k;i++)
if(f[i]==0) return 0;
return 1;
}
void dfs(int w)
{
if(w==n+1)
{
if(check()==1)
sum++;
return;
}
for(int i=1;i