欢迎各位大佬进行指正或改进:
int n = 0, m = 0; cin >> n >> m;
vector<int> candy(n + 2, 0);
while(m--)
{
for(int i = 1; i <= n; i++)
{
candy[i] /= 3;
candy[i - 1] += candy[i];
candy[i + 1] += candy[i];
candy[1] += candy[6]; candy[6] = 0;
candy[n] += candy[0]; candy[0] = 0;
}
}
其实这里对首尾的处理还可以用循环链表,但我感觉那样就搞得太复杂了,感兴趣的可以自己去试试看( ̄︶ ̄)