题目:
分析:
这个题做过,典型的博弈论题。
分析1:数学方法。
当个数为偶数个是,先选的可以保障其一直选奇数或者一直选偶数。
所以:当个数为偶数时,先选的一定不会输。
为奇数时,需要讨论情况。
结果有错吧。
代码:
if(n.size()%2==0||n.size()==1)
{
return true;
}
//为奇数。 去掉首尾求和
int all=0;
int k=1;
for(int i=0;i<n.size()-1;i++)
{
k=-k;
all+=k*n[i];
}
if(n[n.size()-1]>max(all,-all)) return true;
all=0;
for(int i=1;i<n.size();i++)
{
k=-k;
all+=k*n[i];
}
if(n[0]>max(all,-all)) return true;
return false;
分析2:dp
官方题解:
很优秀的dp