poj 1218

Poj 1218

原题链接
经典的楼道开关灯问题;
1. 脑子比较直的人会直接按照游戏规则,用程序模拟游戏的过程,最后检查来得到结果,
2. 喜欢思考的人,会考虑逃跑的条件是什么,找到规律,从而用简单的近似于公式的方法就可以解决问题;得到规律有两种方法,一种笨的:从测试用例中标记逃出来的犯人的号码从中找规律,一种本质性的:约数个数为奇数,从数论可知这些数都是完全平方数,1^2,2^2,a^2;又因为开方后可看作逃跑的犯人的编号,所以直接求sqrt(n)下取整即可;
3. 贴一下别人写的代码吧:转载
4. 再找这道题简单揭发的过程中,我发现一个很可悲的事,许多博主都是用第一种方法来解决的这道题,但这些人中还有人说这题水,有点可笑的;我觉得,没有水题,只有更简单的解法;一道题做好,才是能力的提升,才能体现算法存在的意义;
5. 总结:我自己开始也是按游戏规则来写的,但是考虑到了从数的约数个数入手,但是方向跑偏了,我的想法是对每个数计算约数个数,判断可以逃走就计数器加一;如果再思考深一点就可以得到第二种解法了;但是没有如果;

猜你喜欢

转载自blog.csdn.net/m0_38062488/article/details/80723397