题目: 分析:和滑雪问题一样。 代码: #include<bits/stdc++.h> using namespace std; int A[20][20]; int B[20]; int n; int D[20]; int f(int x) { if(D[x]!=-1) return D[x]; D[x]=0; for(int i=x+1;i<n;i++) { if(A[x][i]) D[x]=max(D[x],f(i)); } return D[x]=B[x]+D[x]; }