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;}