4 8 7 9 8 9
5
The following are the 5 ways to select cards such that the average is 8:
Select the 3-rd card.
Select the 1-st and 2-nd cards.
Select the 1-st and 4-th cards.
Select the 1-st, 2-nd and 3-rd cards.
Select the 1-st, 3-rd and 4-th cards.
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
#include<vector>
#include<stdlib.h>
#include<math.h>
#include<queue>
#include<deque>
#include<ctype.h>
#include<map>
#include<set>
#include<stack>
#include<string>
#include<algorithm>
using namespace std;
int n, a, temp;
long long dp[55][3000];
int main()
{
memset(dp, 0, sizeof(dp));
scanf("%d%d", &n, &a);
dp[0][0]=1;
for(int i=1;i<=n;i++)
{
scanf("%d", &temp);
for(int j=i-1;j>=0;j--)
for(int k=0;k<=55*j;k++)
dp[j+1][k+temp]+=dp[j][k];
}
long long ans=0;
for(int i=1;i<=n;i++)
ans+=dp[i][i*a];
printf("%lld\n", ans);
return 0;
}
/**************************************************************
Problem: 6461
User: ldu_reserver201701
Language: C++
Result: 正确
Time:12 ms
Memory:2984 kb
****************************************************************/