zjnu2017校赛M小智的宝可梦

思路:暴力倒着推。开数组a[]存储0-n-1只小精灵吃到的食物数。

从第一只小精灵开始。假设小智喂了它和最后一只小精灵数量为x的食物(x的范围是0-a[0]),然后a[0]和a[n-1]都减去x表示这是已经喂掉的食物。那么剩下的喂食情况都已经被决定了。

第二只小精灵必须和第一只小精灵一起被喂食a[0]-x数量的食物,也就是第一只和最后一只一起吃完之后剩下还要吃的量。 一直这样下去,如果出现负数,就表示某只小精灵多吃了,不符合。如果最后还剩下某个正数,表示那只小精灵还没吃到指定的数目,也不符合。最后全部为0的情况才是符合的。

贴代码。

#include
#include
int n;
int a[1005],b[1005];
void ini(){
    for(int i=0;i


你可能感兴趣的:(想法题,暴力)