手推前几项可以发现,第一次消一定是从数列的正中间消最优,消完这一次后中间会出现一个零,假设n是偶数,那此时两边会出现两个一样的数列,对它们的操作是镜像的,因此只考虑一个并重复上面的操作即可,如果n是奇数,那么每次只考虑较大的那个子数列即可。
1 |
|
手推前几项可以发现,第一次消一定是从数列的正中间消最优,消完这一次后中间会出现一个零,假设n是偶数,那此时两边会出现两个一样的数列,对它们的操作是镜像的,因此只考虑一个并重复上面的操作即可,如果n是奇数,那么每次只考虑较大的那个子数列即可。
1 | #include <cstdio> |