Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
用java的牛人们看看为什么会RE?import java.util.*; import java.io.*; class Path { public int x, y, cost; public Path(int x, int y, int cost) { this.x = x; this.y = y; this.cost = cost; } } class MyComparator implements Comparator<Path> { public int compare(Path p1, Path p2) { return p2.cost - p1.cost; } } class GetAns { PriorityQueue<Path> p; int total; int[] head; public GetAns(int total, PriorityQueue<Path> p) { this.total = total; this.p = p; head = new int[total]; } public void getAC() { for(int i = 0; i < head.length; ++i) head[i] = i; int allCost = 0; while(true) { Path path = p.poll(); if(path == null) break; int x = path.x; int y = path.y; int cost = path.cost; while(head[x] != x) { x = head[x]; } while(head[y] != y) { y = head[y]; } if(x != y) { allCost += cost; head[y] = x; } } System.out.println(total * 10000 - allCost); } } public class Main { public static void main(String[] args) { try { BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); int test = Integer.valueOf(buff.readLine()); for(int t = 0; t < test; ++t) { buff.readLine(); StringTokenizer st = new StringTokenizer(buff.readLine()); int n = Integer.valueOf(st.nextToken()); int m = Integer.valueOf(st.nextToken()); int r = Integer.valueOf(st.nextToken()); PriorityQueue<Path> pri = new PriorityQueue<Path>(r, new MyComparator());; for(int i = 0; i < r; ++i) { st = new StringTokenizer(buff.readLine()); int x = Integer.valueOf(st.nextToken()); int y = Integer.valueOf(st.nextToken()) + n; int cost = Integer.valueOf(st.nextToken()); pri.add(new Path(x, y, cost)); } GetAns getAns = new GetAns(m + n, pri); getAns.getAC(); } } catch(IOException i) { //System.exit(0); } } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator