全部评论
总数为奇数时,先取最中间的一个,然后以中间那个数为对称轴,你就取对方对称的石头;偶数时先取中间两个,同理。
奇数就选中间一个,偶数就选中间两个,这样就分成两堆,然后对方选什么,你就选另一堆一样的
先取的必胜,如果是奇数个先取最中间的一颗,如果是偶数个,先取中间的两颗,相当于把石头分成了两堆,接下来无论对方取哪颗,只要在另外一堆取与他关于中心对称的一颗就赢了,嗯,应该就是这样。
每次都取中间的数字,奇数取最中间一个,偶数取最中间两个,这样就能够把数组分割成对称的两部分。然后他在一边取一个或者两个,你就在另外一边取相同位置对称的一个或者两个。这样的话,他选择取的那一边如果没取完,你那一边就肯定没取完;他那一边如果取完了,你这一边也肯定正好取完了。而棋子总有被取完的一次,而你,恰恰因为对称的缘故,永远是那个最后取完的人。
我思路是先取中间编号,分成两堆,类似分治的思想
例如1.2.3.4.5,我取了2.3之后,你可以取的方式有1、4、5、45这四种,不能取14或15因为不连续
这应该反推,考虑自己最后可以取最后一颗,或者最后连续的两颗,往前推
如果是三颗石头,然后你先取,那你不管怎样都是输吧
这和那个阿里的棋盘面试题是一样的思路欸
对称博弈
头条面试问的?
。。。百度一下巴什博弈
相关推荐