小王林峰子 level
获赞
6
粉丝
0
关注
0
看过 TA
0
广东工业大学
2017
前端工程师
IP属地:未知
想换mac
私信
关注
完全白卷啊,本地通过都过不了编译器。
我的代码:版本升级 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; publicclass Main { List < Node > finalList = new ArrayList <> () ; int min = Integer .MAX_VALUE; publicstaticvoid main ( String [] args ) { Main main = new Main () ; main. init () ; } privatevoid init () { Scanner scanner = new Scanner ( System .in) ; String [] first = scanner. nextLine () . split ( " " ) ; int start = Integer . valueOf (first[ 0 ]) ; int end = Integer . valueOf (first[ 1 ]) ; List < Node > lists = new ArrayList <> () ; while (scanner. hasNext ()) { String [] now = scanner. nextLine () . split ( " " ) ; Node node = new Node (Integer. valueOf ( now [ 0 ]) , Integer. valueOf ( now [ 1 ]) , Integer. valueOf ( now [ 2 ])) ; lists. add (node) ; } solve (lists, start, end) ; } void solve ( List<Node> lists,int start,int end ) { Collections .sort( lists , new NodeComp()) ; List < Node > tmp = new ArrayList <> () ; Node fir = new Node ( start , start , 0 ) ; dfs (fir, lists , tmp, end , 0 , - 1 ) ; // System.out.println(finalList); if (finalList. size () != 0 ) { StringBuffer sb = print (finalList) ; sb. append ( "(" + min + ")" ) ; System . out .println( sb .toString()) ; } } private StringBuffer print (List< Node > list ) { StringBuffer sb = new StringBuffer () ; if ( list . size () == 0 ) { sb. append ( list . get ( 0 ) .begin + "->" + list . get ( 0 ) .end) ; } else { sb. append ( list . get ( 0 ) .begin) ; for ( int i = 0 ; i < list . size () ; i++ ) { sb. append ( "->" ) ; sb. append ( list . get (i) .end) ; } } return sb; } privatevoid dfs ( Node cur, List<Node> lists, List<Node> tmp,int end,int curCost,int pos ) { if ( cur .end > end || curCost > min) return; else if ( cur .end == end ) { if ( curCost < min) { min = curCost ; finalList = new ArrayList <> ( tmp ) ; } } else { for ( int i = pos + 1 ; i < lists . size () ; i++ ) { Node node = lists . get (i) ; if (node.begin == cur .end) { tmp . add (node) ; dfs (node, lists , tmp , end , curCost + node.cost, i) ; tmp .remove( tmp .size() - 1 ) ; } else if (node.begin > cur .end) { break; } } } } class NodeComp implements Comparator< Node > { @Override publicint compare ( Node o1, Node o2 ) { if ( o1 .begin < o2 .begin) return-1; else if ( o1 .begin > o2 .begin) return 1; else return 0; } } class Node { int begin; int end; int cost; Node ( int begin, int end, int cost) { this.begin = begin ; this.end = end ; this.cost = cost ; } @Override public String toString() { return begin + "," + end; } } }
投递完美世界等公司9个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务