我们从起点x开始暴力枚举所有决策 于是可以得到如下转移 void dfs(int x,int A,int B,int C,int D,int y) { if (x==n) {ans=max(ans,y);} if (A) dfs(x+1,A-1,B,C,D,y+a[x+1]); if (B) dfs(x+2,A,B-1,C,D,y+a[x+2]); if (C) dfs(x+3,A,B,C-1,D,y+a[x+3]); if (D) dfs(x+4,A,B,C,D-1,y+a[x+4]); }…