Submission #1779458


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vint;
typedef pair<int,int> pint;
typedef vector<pint> vpint;
#define rep(i,n) for(int i=0;i<(n);i++)
#define REP(i,n) for(int i=n-1;i>=(0);i--)
#define reps(i,f,n) for(int i=(f);i<(n);i++)
#define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++)
#define all(v) (v).begin(),(v).end()
#define eall(v) unique(all(v), v.end())
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define chmax(a, b) a = (((a)<(b)) ? (b) : (a))
#define chmin(a, b) a = (((a)>(b)) ? (b) : (a))
const int MOD = 1e9 + 7;
const int INF = 1e9;
const ll INFF = 1e18;

int N, X;
int x[100100], y[100100];
ll c[100100];
ll dp[100010];
vector<pair<int, ll>> G[100100];

void dfs(int u, int p) {
	for(auto t : G[u]) {
		int v = t.fi; ll k = t.se;
		if(p == v) continue;
		dp[v] = dp[u] ^ k;
		dfs(v, u);
	}
}

int main(void) {
	cin >> N >> X;
	rep(i, N - 1) cin >> x[i] >> y[i] >> c[i];
	rep(i, N - 1) x[i]--, y[i]--;

	rep(i, N) G[x[i]].pb(mp(y[i], c[i])), G[y[i]].pb(mp(x[i], c[i]));
	dfs(0, -1);
	dp[0] = 0;
	map<ll, ll> ma;
	rep(i, N) ma[dp[i]]++;

	ll ans = 0;

	for(auto u : ma) {
		ll d = u.fi ^ X;
		// if(d > u.fi) continue;
		if(ma.count(d) == 0) continue;
		
		if(d == u.fi) {
			ans += u.se * (u.se - 1) / 2;
		}else if(d < u.fi){
			ans += u.se * ma[d];
		}
	}
	printf("%lld\n", ans);
	
	return 0;
}

Submission Info

Submission Time
Task C - エックスオア多橋君
User mmxsrup
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1481 Byte
Status AC
Exec Time 172 ms
Memory 16256 KB

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 3 ms 4352 KB
subtask0_sample_02.txt AC 3 ms 4352 KB
subtask0_sample_03.txt AC 3 ms 4352 KB
subtask1_01.txt AC 3 ms 4352 KB
subtask1_02.txt AC 4 ms 4352 KB
subtask1_03.txt AC 172 ms 16256 KB
subtask1_04.txt AC 171 ms 16256 KB
subtask1_05.txt AC 172 ms 16256 KB
subtask1_06.txt AC 89 ms 14336 KB
subtask1_07.txt AC 106 ms 9984 KB
subtask1_08.txt AC 106 ms 9984 KB
subtask1_09.txt AC 134 ms 11008 KB
subtask1_10.txt AC 130 ms 11008 KB
subtask1_11.txt AC 4 ms 4352 KB
subtask1_12.txt AC 4 ms 4352 KB
subtask1_13.txt AC 120 ms 10112 KB
subtask1_14.txt AC 115 ms 10112 KB
subtask1_15.txt AC 15 ms 5376 KB
subtask1_16.txt AC 15 ms 5376 KB
subtask1_17.txt AC 15 ms 5376 KB
subtask1_18.txt AC 16 ms 5376 KB
subtask1_19.txt AC 15 ms 5376 KB
subtask1_20.txt AC 15 ms 5376 KB
subtask1_21.txt AC 15 ms 5376 KB
subtask1_22.txt AC 15 ms 5376 KB
subtask1_23.txt AC 15 ms 5376 KB
subtask1_24.txt AC 15 ms 5376 KB