建无向图
struct edge {
int to;
int val;
int nxt;
} edge[10010];
int head[1100];
int cnt=0;
void addE(int u,int v,int val) {
edge[cnt].to=v;
edge[cnt].val=val;
edge[cnt].nxt=head[u];
head[u]=cnt++;
}
for(int j=head[i]; ~j; j=edge[j].nxt) {//遍历
int to=edge[j].to;
ans =max(ans,dp(to)+edge[j].val);
}