题目链接:

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

HDU 4662 MU Puzzle 数论或者水题的更多相关文章

  1. hdu 4662 MU Puzzle

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 MU Puzzle Time Limit: 2000/1000 MS (Java/Others) ...

  2. HDU 4662 MU Puzzle (2013多校6 1008 水题)

    MU Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  3. HDU 4662 MU Puzzle:找规律

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 题意: 初始字符串为"MI". 有三个操作: (1)将'M'之后的所有字符翻 ...

  4. 【找规律】HDU 4662——MU Puzzle

    来源:点击打开链接 这个题目的来源是人工智能领域MU猜想.比赛的时候也参考了相关资料,可是最后差一点没有把规律推出来. 注意到以下几个性质.第一,MI怎么变换M永远只能在第一位.第二,因为变换时只能在 ...

  5. HDU 4662 MU Puzzle(找规律)

    题意:问是否能把MI通过以下规则转换成给定的字符串s. 1.使M之后的任何字符串加倍(即,将Mx更改为Mxx). 例如:MIU到MIUIU.2.用U替换任何III.例如:MUIIIU至MUUU.3.去 ...

  6. HDU 4662 MU Puzzle 简单找规律

    没有任何变换(III变U和删UU操作)之前,I 的个数一定是2^x个(也就是2的整数次幂) 若仅考虑III变U,那么设U的个数为k,I 的个数变为2^x-3*k 再加上删除UU操作,假设我们删除了2* ...

  7. HDU 4662 MU Puzzle 2013 Multi-University Training Contest 6

    现在有一个字符串"MI",这个字符串可以遵循以下规则进行转换: 1.Mx 可以转换成 Mxx ,即 M 之后的所有字符全部复制一遍(MUI –> MUIUI) 2.III 可 ...

  8. HDU 2096 小明A+B --- 水题

    HDU 2096 /* HDU 2096 小明A+B --- 水题 */ #include <cstdio> int main() { #ifdef _LOCAL freopen(&quo ...

  9. [HDU 2602]Bone Collector ( 0-1背包水题 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 水题啊水题 还给我WA了好多次 因为我在j<w[i]的时候状态没有下传.. #includ ...

随机推荐

  1. vuejs2点滴

    在Vue定义一个不被添加getter setter 的属性: https://github.com/vuejs/vue/issues/1988 博客: 0.vux的x-input源码分析. http: ...

  2. charles的破解方法

    http://blog.csdn.net/tech4j/article/details/53509329 mac下的charles遇到的问题. http://blog.csdn.net/songzhu ...

  3. Java checked 异常 和 RuntimeException(运行时异常)

    目录 一.运行时异常 1.什么是RuntimeExceptioin 2.运行时异常的特点 3.如何运用运行时异常 二.运行时异常和ckecked异常的区别 1.机制上 2.逻辑上 一.运行时异常 1. ...

  4. 同步代码时忽略maven项目 target目录

    方式一: 在项目代码路径,如: F:\xyx\sl  鼠标右键,“TortoiseSVN”-- >“Settings” -->"Subversion"-->&qu ...

  5. 16 Managing Undo

    16 Managing Undo 从Oracle11g开始,在默认安装中oracle会自动管理undo, 典型安装中不需要DBA介入配置,然而,如果选择了flash back特性,你就需要进行一些un ...

  6. English trip -- VC(情景课)3 C Do you have a sister?(maple verstion)

    xu言: 温故而知新,可以为师矣.不要小瞧重复的东西,不同的老师,不同的角度,不同的方法.你就会掌握不同的知识~ Review what you have learned and get someth ...

  7. Jersey 2.x 基于 Servlet 的服务器端应用

    下面的依赖通常应用到应用服务器上(servlet 容器),同时这个应用服务器上没有整合任何 JAX-RS 的实现. 因此,这个应用服务器需要包含有 JAX-RS API 和 Jersey 实现,同时部 ...

  8. PC端,移动端分离,如何结合??

    <script type="text/javascript"> function mobile_device_detect(url) { var thisOS = na ...

  9. 『科学计算』科学绘图库matplotlib学习之绘制动画

    基础 1.matplotlib绘图函数接收两个等长list,第一个作为集合x坐标,第二个作为集合y坐标 2.基本函数: animation.FuncAnimation(fig, update_poin ...

  10. SPFA 最短路

    求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm.     SPFA算法是西南交通大学段凡丁于1994年发表的.    从名字我们就可以看出,这种算法在 ...