麻烦回答下问题THANKS
C++【动态规划2】跳跳棋
题目难度:普及-
时间限制:1000ms
内存限制:512MB
【题目描述】
小T作为班级的班长,承担着班级的各项事务,今天班主任交给了小T一个重要的任务,学校的知识竞赛就要开始了,要小T代表班级去参加,今天这场是跳跳棋,跳跳棋的棋盘长度为n,排成一排,每个格子上都有一个数字ai,在游戏的开始,小T可以选择一个位置i,这是小T的初始位置,然后小T可以获得ai的得分,并且跳到i+ai的位置j之后,继续获得aj的得分,再跳到j+aj的位置上,直到小T跳出棋盘,则游戏结束,将小T获得的分数累加就是他最终的得分,现在小T想赢得比赛的胜利,需要知道他可以获得的最大得分,由于这个问题太难了,小T才小学一年级,还算不过来,需要你帮帮他。
【输入格式】
第一行一个整数t表示测试数据组数。
接下来每组数据的第一行为一个整数n,表示棋盘长度。
接下来一行包含n个整数,分别为a1到an。
【输出格式】
t行,对于每组数据,输出最大得分。
【样例输入#1】
4
5
7 3 1 2 3
3
2 1 4
6
2 1000 2 3 995 1
5
1 1 1 1 1
【样例输出#1】
7
6
1000
5
【大样例】
down1.in/down1.out
【数据范围】
对于30%的数据,1≤n≤10。
对于50%的数据,1≤n≤10^3 。
对于100%的数据,1≤ai,n≤2∗10^4,1≤t≤10。
真的急啊