HDU 4662 MU Puzzle

来源:互联网 发布:淘宝网妈妈装棉袄 编辑:程序博客网 时间:2024/06/03 01:38
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>using namespace std;const int maxn = 1000007;char  str[maxn];long long a[40];void init(){           a[0]=1;      for(int i=1; i<=32; i++)      {              a[i]=a[i-1]*2;                   }}int  main(){     int t;     scanf("%d", &t);     memset(a,0,sizeof(a));     init();     while(t--)     {            scanf("%s", str);            int len=strlen(str);            long long cnt=0;            int temp=0;            for(int i=0; i<len; i++)            {                    if(str[i]=='U')                    {                          cnt+=3;                    }                    else if(str[i]=='I')                    {                          cnt++;                    }                    else if(str[i]=='M')                    {                           temp++;                    }            }            bool  flag=false;            if(temp==1 && str[0]=='M')            {                   for(int i=0;i<=32;i++)                   {                          if(a[i]== cnt || ((a[i]-cnt) % 6==0 && a[i] >= cnt))                          {                                flag=true;                                break;                          }                   }                               if(flag)                   {                           printf("Yes\n");                   }                   else                   {                           printf("No\n");                   }            }            else            {                   printf("No\n");            }     }     return 0;}

原创粉丝点击