题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=4662

题目是问目标串能否由MI得到,我们可以逆向思维,目标串能否反过来处理得到MI,所以,首先排除M没有出现或者出现超过一次,或者只出现了一次但没有出现在第一个位置的情形····也就是说只剩下第一个位置是M,然后不再出现M的情形····

接下来思考如何得到I,既然要得到I,U必然要化成I,一个U相当于3个I,接下来还可以每次添加UU,相当于添加了6个I,这样当I的个数能凑成2^k,k>=0时,就是解

问题转化为如下:

关于x + 6*y = 2^k中x的整数解

问题描述:

当x取何值时,一定能找到一对y,k,其中y>=0,k>=0,y,k都是整数,来满足 x + 6*y = 2^k。

答案:

x= 1,或者x%6 =2 或者x%6 =4.

证明:

显然当x = 1时,y=0,z=0时满足条件,x=1是解。

现在只考虑x>1的情形。

当x>1时,如果x为解。

那么x = 2^k-6*y。k>0····

注意到8%6 = 2

那么k个2(k>0)相乘后的积%6 一定为2或4。

那么x%6 = (2^k-6*y)%6 = 2^k %6 = 2或4。

这就证明了如果x是解,要么x =1,否则x%6=2或4.

那么是不是凡是%6=2或4的就一定是解呢···答案是肯定的。

先考虑2+6*q的情形

2+6*q+6*y = 2^k

3(q+y)+1 = 2^p , p =k-1

注意要4%3=1,由此得到2^(2t)%3 = 1,2^(2t+1)%3 = 2.

上面的式子必然成立。

4+6*q的情形同样可以证明。

事实上,可以从另外一个角度思考,1必然是解,当x>=1时,如果(2^k-x)%6=2^k%6 - x%6 = 0,,注意到2^k%6=2或4,所以除非x%6=2或者4,否则等式不会成立

贴代码:

 #include <cstdio>
#include <cstring>
#define N 1000007
char a[N];
int main()
{
// freopen("in.c","r",stdin);
int n;
scanf("%d",&n);
for(int i=; i<n; ++i)
{
scanf("%s",a);
// printf("%s\n",a);
int len=strlen(a);
int cnt =;
if(a[] !='M')
{
printf("No\n");
continue;
}
bool flag = true;
for(int j=; j<len; ++j)
{
if(a[j] == 'M')
{
flag = false;
break;
}
if(a[j] == 'U')
cnt += ;
else
++cnt;
}
if(!flag)
{
printf("No\n");
continue;
}
if(cnt == )
{
printf("Yes\n");
continue;
}
// printf("cnt=%d\n",cnt);
if(cnt% == || cnt% == )
flag =true;
else flag =false;
if(flag)
printf("Yes\n");
else
printf("No\n");
}
return ;
}

最新文章

  1. C# 使用 NPOI 库读写 Excel 文件
  2. js中for in 和 for each in的用法和区别
  3. [转]ASP.NET MVC 入门1、简介
  4. Spark RCFile的那些“坑”
  5. jQuery toggle() 方法与实例以及代替方法。
  6. Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
  7. 3. Shell 基本运算符
  8. 转 android学习—— context 和 getApplicationContext()
  9. IIS 之 在IIS7、IIS7.5中应用程序池最优配置方案
  10. windows phone 模拟器
  11. elasticsearch分词器Jcseg安装手册
  12. Nuxt.js国际化vue-i18n的搭配使用
  13. Hexo自定义页面的方法
  14. jenkins 忘记用户名和密码
  15. RN 时间戳
  16. Ubuntu系统配置
  17. QQ现状深度剖析:你还认为QQ已经被微信打败了吗?
  18. 实战Asp.Net Core:部署应用
  19. Failed to create Accelerated Display. Please check the display hardware and drivers meet the minimum requirements.
  20. #学习笔记#JSP数据交互

热门文章

  1. hihoCoder 1636 Pangu and Stones
  2. 原生js的博客
  3. thinkphp导入
  4. datafile相关(add、rename、drop)
  5. Harbor和YUM部署for CentOS 7
  6. zabbix自动化监控基础
  7. Centos中彻底删除Mysql(rpm、yum安装的情况)
  8. 禁止一个click事件执行的方法
  9. ural1469
  10. 开发工具之play framework