HDU 5119 Happy Matt Friends(2014亚洲区北京站现场赛)

来源:互联网 发布:mac能做什么 编辑:程序博客网 时间:2024/06/06 14:11

dp

#include<stdio.h>#include<string.h>int dp[45][1<<21];int a[45];int main(){    int T,n,m,flag=0;    long long int s;    scanf("%d",&T);    while(T--)    {        flag++;        s=0;        memset(dp,0,sizeof(dp));        scanf("%d %d",&n,&m);        for(int i=1;i<=n;i++)            scanf("%d",&a[i]);        dp[0][0]=1;        for(int i=1;i<=n;i++)        {            for(int j=0;j<(1<<21);j++)                dp[i][j]=dp[i-1][j];            for(int j=0;j<(1<<21);j++)            {                if(dp[i-1][j]!=0)                {                    dp[i][j^a[i]]+=dp[i-1][j];                }            }        }        for(int i=m;i<(1<<21);i++)        {            s=s+dp[n][i];        }        printf("Case #%d: %I64d\n",flag,s);    }    return 0;}
0 0
原创粉丝点击