hdu 4662】的更多相关文章

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 MU Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1296    Accepted Submission(s): 539 Problem Description Suppose there are the symbo…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 题意: 初始字符串为"MI". 有三个操作: (1)将'M'之后的所有字符翻倍.For example: MIU to MIUIU. (2)将'III'变为一个'U'.For example: MUIIIU to MUUU. (3)删除'UU'.For example: MUUU to MU 给你一个字符串s,问你是否能将初始字符串"MI"通过一系列操作变为s.…
题目链接: 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时,就是…
没有任何变换(III变U和删UU操作)之前,I 的个数一定是2^x个(也就是2的整数次幂) 若仅考虑III变U,那么设U的个数为k,I 的个数变为2^x-3*k 再加上删除UU操作,假设我们删除了2*n个U,设实际U的个数为cntU, 则k=cntU+2*n 设 I 的实际个数为cntI,cntI = 2^x - 3*(cntU+2*n), n有解的情况为: ( 2^x - 3*cntU - cntI ) % 6 == 0 只要找到一个x满足这个条件即可,不过要注意( 2^x - 3*cntU…
现在有一个字符串"MI",这个字符串可以遵循以下规则进行转换: 1.Mx 可以转换成 Mxx ,即 M 之后的所有字符全部复制一遍(MUI –> MUIUI) 2.III 可以转换成 U. 3.UU 可以直接消除 现在你的任务是,给定你另外一串字符串,请判断能否从"MI"按照如上规则用有限的步骤转化得出. (先吐个槽,出题人是MIUI的粉丝还是肿么??) 进入正题,从数据大小为 106 来看就知道这个肯定有公式.下面来讲一下肿么推出来的. 首先,三个 I 可以…
将U全部转化为I   因为 I 的个数一定是2的n次方  有可能消除了一定数量的 2U  所以I的个数加上一个6的整数倍是2的n次方 #include <iostream> #include <cstdio> #include <cstring> using namespace std; char a[1000010]; int b[40] = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,6…
来源:点击打开链接 这个题目的来源是人工智能领域MU猜想.比赛的时候也参考了相关资料,可是最后差一点没有把规律推出来. 注意到以下几个性质.第一,MI怎么变换M永远只能在第一位.第二,因为变换时只能在I和U之间变换,因此,除了第一个是M以外,后面如果有字符串不是U.I以内的话永远不可能变换得到.第三,U可以看成是3个I,无论是I先变换成U再操作还是转化成一定数量的I,最后再准换成一定数量的U即可,因此将所有的字母用I作为一般等价物进行交换即可. #include <iostream> #inc…
MU Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 134    Accepted Submission(s): 71 Problem Description Suppose there are the symbols M, I, and U which can be combined to produce strings…
Suppose there are the symbols M, I, and U which can be combined to produce strings of symbols called "words". We start with one word MI, and transform it to get a new word. In each step, we can use one of the following transformation rules: 1. D…
题意:问是否能把MI通过以下规则转换成给定的字符串s. 1.使M之后的任何字符串加倍(即,将Mx更改为Mxx). 例如:MIU到MIUIU.2.用U替换任何III.例如:MUIIIU至MUUU.3.去掉任何UU. 例如:MUUU到MU. 分析: 1.MI的变换首先要复制I,可以复制为1,2,4,8,16,32,……(2的n次方)个. 2.由于可以用U替换任何III,所以将字符串s中所有的U变为I后,统计I的个数cnt. 3.由于可以去掉任何UU,所以转换成功必须满足cnt+6x==2的n次方.…