摘要:
题意:给出两个数a和b,求出[a,b]之间,有多少个数为round number。round number的定义:其二进制数中0的数量大于或等于1的个数。分析:设round number有 s 位,则0的个数至少为 c= (s+1)/21. 若a的二进制有pa位,b有pb位,(pa<s<pb),s位的数中,第一位为1,其余s-1位可自由选择,所以有sum = C(s-1,c) +C(s-1,c+1 )+...+C(s-1,s-1 )。2. 和a位数相同且大于a的round number的个数为:将第一个0改为1,则后面的数位自由组合,满足round number条件的话,这个数一定 阅读全文
posted @ 2013-05-01 22:03
心向往之
阅读(188)
评论(0)
推荐(0)
摘要:
题意:给一个字符串 S,长度<=10,其中的字母按升序排列。长度小的字符串比大的字符串靠前,长度相同按字典序排列,问 S 排第几个。a - 1b - 2...z - 26ab - 27...az - 51bc - 52...vwxyz - 83681分析:字母按升序排列,则选出若干字母,其排列唯一。先求长度len,比它短的字符串有C(26,1) + C(26,2) +...+C(26,len-1) 个。对于长度相同的字符串,设S=“ b d f h t ”,则前四位和 S 相同,最后一位小于 't' 并且大于 'h' 的有C('z'- 阅读全文
posted @ 2013-05-01 19:42
心向往之
阅读(131)
评论(0)
推荐(0)
摘要:
题意:3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。给出初始状态和目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动方法。poj1077 hdu1043 zoj1217 uva652 sgu139 (15数码)首先,将空格看成数字9,对于任意的布局S,定义perm(S)为从上到下从左到右的一个排列,i的初始位置为(x,y) 目标位置为(x',y'),定义距离dist(i)=|x'-x| + |y'-y|,每移动一个棋子,dist(9)=dist(9)±1,dist( 阅读全文
posted @ 2013-05-01 13:39
心向往之
阅读(325)
评论(0)
推荐(0)

浙公网安备 33010602011771号