随笔-72  评论-126  文章-0  trackbacks-0
http://acm.hdu.edu.cn/showproblem.php?pid=1271
暴力的话一定超时,从n/2枚举到n,还要去掉其中一个数字
所以想下其他办法
先立等式
A+B=N
条件的信息只有N还有A和B的不确定关系
找到这个关系就能算出A和B
因为B是A去掉中间一个数字出来的
所以我吧A表示成
A=a*10^(x+1) + b*10^x +c【b代表的是去掉的数字】
这样的话B就是
B=a*10^x+c
所以N就等于
N=a*11*10^x+b*10^x+2*c
而c一定是n的后边若干位数字处以2得到的结果
比如说152
c就可能是0/2=0   2/2=1   12/2=6   52/2=26   152/2 = 76
然后N减去2*c后就是a*11*10^x+b*10^x,再除以10^x得到a*11+b
因为b是一位的数0~9所以可以进行枚举,然后得到的数字看看是不是符合条件
保存在数组里
排序,输出,OVER~
posted on 2009-02-11 23:06 shǎ崽 阅读(673) 评论(8)  编辑 收藏 引用

评论:
# re: hdoj1271解题报告 2009-02-11 23:13 | 斌whb
当时没想到~~~数学啊。。  回复  更多评论
  
# re: hdoj1271解题报告 2009-02-18 21:50 | shǎ崽
@斌whb

数学很好玩  回复  更多评论
  
# re: hdoj1271解题报告 2009-04-11 21:54 | bt
可以把代码贴一下吗?谢  回复  更多评论
  
# re: hdoj1271解题报告 2009-04-13 00:17 | shǎ崽
@bt
这道题目虽然我解题报告写出来了
但是我的代码写的很挫的。。
当时通过调试在处理好狠多小细节才过的。。
所以就不献丑了。。再想想,处理好细节很简单的  回复  更多评论
  
# re: hdoj1271解题报告[未登录] 2011-03-15 20:12 | ll
写得不错,看懂了.
高手.  回复  更多评论
  
# re: hdoj1271解题报告 2011-05-21 23:43 | zufe_thibker
能不能解释一下152是什么情况  回复  更多评论
  
# re: hdoj1271解题报告 2011-05-21 23:46 | zufe_thibker
刚才说的不清楚,就是c=152/2的情况,是怎么样的啊?2*c=152的话,那么就是a=0并且b=0,那去掉的那个数到底在那个位置呢??求解释!!  回复  更多评论
  
# re: hdoj1271解题报告 2011-05-25 08:17 | zufe_thibker
懂了懂了,原来是进位啊。A了A了  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理