static int ans = Integer.MAX_VALUE;     private static void dfs(int s, int t, int[] w, int[] p, int[][] uvc, boolean f[],int time) {         if (f[s]) {//走过了             return;         }         if(s==t){//到终点啦             ans=Math.min(ans,time);             return;         }         //走过了路,已经到城内了,先判断是否可以进城,再休整,再从那些联通的路出发         if(time%w[s-1]==0){//整点了             time+=p[s-1];//休整         }else{             time+=(w[s-1]-time%w[s-1]);//等待后进城             time+=p[s-1];//休整         }         for (int i = 0; i < uvc.length; ++i) {             if (uvc[i][0] == s&&!f[uvc[i][1]]) {//没有走过该城市                 f[s]=true;                 dfs(uvc[i][1], t, w, p, uvc, f,time+uvc[i][2]);//s起点/当前点,t终点,f是否走过了该点,time当前已经花费的时间             }             if (uvc[i][1] == s&&!f[uvc[i][0]]) {//没有走过该城市                 f[s]=true;                 dfs(uvc[i][0], t, w, p, uvc, f,time+uvc[i][2]);//s起点/当前点,t终点,f是否走过了该点,time当前已经花费的时间             }         }     } 第二题我暴力,只过了30%