HDU 2065 "红色病毒"问题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2065

题意:有ABCD组成的长度为n的串,其中AB两种字母必须出现偶数次。有多少种不同的串?

思路:思路来自cxlove。构造母函数

HDU 2065 "红色病毒"问题

u64 n;



int Pow(int a,u64 b)

{

    int ans=1;

    while(b)

    {

        if(b&1) ans=ans*a%100;

        a=a*a%100;

        b>>=1;

    }

    return ans;

}



int main()

{

    int C;

    while(cin>>C)

    {

        if(!C) break;

        int num=0;

        int i;

        FOR1(i,C)

        {

            cin>>n;

            int ans=Pow(4,n-1)+Pow(2,n-1);

            printf("Case %d: %d\n",++num,ans%100);

        }

        puts("");

    }

}

  

你可能感兴趣的:(HDU)