HDU 4662 MU Puzzle 多校最水的一题

来源:互联网 发布:mac appstore验证失败 编辑:程序博客网 时间:2024/05/16 09:43

题意就不说了,解法是把原串中所有的U都变成I统计I的个数,如果个数是奇数且不是1,就输出No 如果是偶数就除二,若变成了奇数就-3,再变成偶数就除二,直到小于2为止

若最终的结果是1就是Yes,否则就是No,要注意的是原串中有且仅有第一个字符是M

代码如下:

/*********PRO: hdu 4662TIT: MU PuzzleTIM: 13/8/9AUT: UKeanEMA: huyocan@163.com*********/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;char str[1000006];int inline read(){scanf("%s",str);return 1;}void deal(){int Sum_I=0,Str_Len=strlen(str);for(int i=1;i<Str_Len;i++){if(str[i]=='I') Sum_I++;else if(str[i]=='U') Sum_I+=3;else {Sum_I=0; break;}}if((Sum_I&1&&Sum_I!=1)||str[0]!='M') Sum_I=0;while(Sum_I>1)if(Sum_I&1) Sum_I-=3;else Sum_I/=2;if(Sum_I==1)printf("Yes\n");elseprintf("No\n");}int main(){int T;scanf("%d",&T);while(T--){read();deal();}return 0;}


原创粉丝点击