Submission #3971104


Source Code Expand

import java.io.*;
import  java.util.*;

import static java.lang.System.in;

class Main{
    static HashMap<Integer,Long> dist = new HashMap<>();
    static ArrayList<Edge>[] map;
    public static void main(String[] args)throws IOException{
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int X = sc.nextInt();
        map = new ArrayList[n+1];
        for(int i=0;i<=n;i++) map[i]=new ArrayList<>();
        for(int i=0;i<n-1;i++){
            int a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt();
            map[a].add(new Edge(b,c));
            map[b].add(new Edge(a,c));
        }
        for(Edge e:map[1]) dfs(e.to,1,e.weight);
        if(X==0){
            long ans = dist.getOrDefault(0,0L);
            for(int w:dist.keySet()){
                long cur = dist.get(w);
                ans += cur*(cur-1)/2;
            }
            System.out.println(ans);
        }else{
            // X!=0, then w^w!=X for all w>=0
            long ans1 = dist.getOrDefault(X,0L);
            long ans2 = 0;
            for(int w:dist.keySet()){
                long cur = dist.get(w);
                ans2 += cur*dist.getOrDefault(w^X,0L);
            }
            System.out.println(ans1+ans2/2);
        }
    }
    static void dfs(int cur, int from, int len){
        dist.put(len,dist.getOrDefault(len,0L)+1L);
        for(Edge e:map[cur]){
            if(e.to==from) continue;
            dfs(e.to,cur,len^e.weight);
        }
    }
    static class Edge{
        int to,weight;
        public Edge(int t, int w){
            this.to = t; this.weight = w;
        }
    }
}

Submission Info

Submission Time
Task C - エックスオア多橋君
User AlbertZ
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 1670 Byte
Status AC
Exec Time 825 ms
Memory 128496 KB

Compile Error

Note: ./Main.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 27
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 242 ms 19284 KB
subtask0_sample_02.txt AC 98 ms 19540 KB
subtask0_sample_03.txt AC 93 ms 21844 KB
subtask1_01.txt AC 95 ms 19284 KB
subtask1_02.txt AC 160 ms 23368 KB
subtask1_03.txt AC 747 ms 105924 KB
subtask1_04.txt AC 782 ms 106020 KB
subtask1_05.txt AC 825 ms 106728 KB
subtask1_06.txt AC 677 ms 128496 KB
subtask1_07.txt AC 658 ms 103720 KB
subtask1_08.txt AC 684 ms 105956 KB
subtask1_09.txt AC 716 ms 107356 KB
subtask1_10.txt AC 725 ms 105736 KB
subtask1_11.txt AC 152 ms 22896 KB
subtask1_12.txt AC 169 ms 26132 KB
subtask1_13.txt AC 699 ms 105464 KB
subtask1_14.txt AC 720 ms 105208 KB
subtask1_15.txt AC 281 ms 40828 KB
subtask1_16.txt AC 303 ms 44468 KB
subtask1_17.txt AC 301 ms 42904 KB
subtask1_18.txt AC 308 ms 42604 KB
subtask1_19.txt AC 303 ms 44500 KB
subtask1_20.txt AC 312 ms 44112 KB
subtask1_21.txt AC 333 ms 46416 KB
subtask1_22.txt AC 320 ms 43484 KB
subtask1_23.txt AC 305 ms 46668 KB
subtask1_24.txt AC 308 ms 41748 KB