1008 MU Puzzle
一定要注意特判不可能地比较离谱的例子,WA了几次。2^k-t*6=x。如果T和K太大,我的算法会爆longlong,所以直接取模看因子比较好。@nevermore
Code 327620244 #include<cstdio> #include<iostream> #define ll long long using namespace std; char str[1000000+100]; int n; int main() { scanf("%d",&n); while(n--){ ll x=0,flag=-1; scanf("%s",str); if(str[0]!='M'){printf("No ");continue;} for(int i=1;str[i]!=' ';i++) if(str[i]=='I')x+=1;else{ if(str[i]=='U')x+=3;else flag=-2; } if(flag==-2){printf("No ");continue;} for(int i=0;i<32;i++){ ll l=(ll)1<<i; if(l<x) continue; flag=(l-x)%6; if(flag==0)break; } if(flag) printf("No "); else printf("Yes "); } return 0; }