MCPcopy Create free account
hub / github.com/algorithmzuo/algorithm-journey / main

Method main

src/class161/Code07_FarAway1.java:276–324  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

274 }
275
276 public static void main(String[] args) throws IOException {
277 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
278 StreamTokenizer in = new StreamTokenizer(br);
279 PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
280 in.nextToken();
281 n = (int) in.nval;
282 in.nextToken();
283 m = (int) in.nval;
284 for (int i = 1, u, v; i < n; i++) {
285 in.nextToken();
286 u = (int) in.nval;
287 in.nextToken();
288 v = (int) in.nval;
289 addEdge(u, v);
290 addEdge(v, u);
291 }
292 for (int i = 1; i <= n; i++) {
293 in.nextToken();
294 arr[i] = (int) in.nval;
295 }
296 dfs3(); // dfs3() 等同于 dfs1(1, 0),调用迭代版防止爆栈
297 dfs4(); // dfs4() 等同于 dfs2(1, 1),调用迭代版防止爆栈
298 build(1, n, 1);
299 in.nextToken();
300 int root = (int) in.nval;
301 for (int i = 1, op, x, y, v; i <= m; i++) {
302 in.nextToken();
303 op = (int) in.nval;
304 if (op == 1) {
305 in.nextToken();
306 root = (int) in.nval;
307 } else if (op == 2) {
308 in.nextToken();
309 x = (int) in.nval;
310 in.nextToken();
311 y = (int) in.nval;
312 in.nextToken();
313 v = (int) in.nval;
314 pathUpdate(x, y, v);
315 } else {
316 in.nextToken();
317 x = (int) in.nval;
318 out.println(treeQuery(root, x));
319 }
320 }
321 out.flush();
322 out.close();
323 br.close();
324 }
325
326}

Callers

nothing calls this directly

Calls 9

addEdgeMethod · 0.95
dfs3Method · 0.95
dfs4Method · 0.95
buildMethod · 0.95
pathUpdateMethod · 0.95
treeQueryMethod · 0.95
printlnMethod · 0.45
flushMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected