10206 | 2024-03-29 13:39:40 | 111 | Testvérvárosok | cpp17 | Elfogadva 100/100 | 71ms | 36460 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N,K;
cin>>N>>K;
vector<vector<pair<int,int>>>g(N+1);
for(int i=0;i<N-1;i++){
int a,b,d;
cin>>a>>b>>d;
g[a].emplace_back(b,d);
g[b].emplace_back(a,d);
}
int ans=0;
auto dfs=[&](auto self,int i,int p,int x)->map<int,int>{
map<int,int>s;
for(auto[j,d]:g[i]){
if(j==p){
continue;
}
auto z=self(self,j,i,x+d);
auto q=z.find(x%K);
if(q!=z.end())ans+=q->second;
if(z.size()>s.size()){
swap(s,z);
}
for(auto[y,c]:z){
auto q=s.find(((x*2-y)%K+K)%K);
if(q!=s.end())ans+=q->second*c;
}
for(auto[y,c]:z){
s[y]+=c;
}
}
s[x%K]++;
return s;
};
dfs(dfs,1,0,0);
cout<<ans<<'\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1824 KiB | ||||
2 | Elfogadva | 3ms | 2072 KiB | ||||
subtask2 | 15/15 | ||||||
3 | Elfogadva | 3ms | 2244 KiB | ||||
4 | Elfogadva | 3ms | 2456 KiB | ||||
5 | Elfogadva | 3ms | 2872 KiB | ||||
6 | Elfogadva | 4ms | 3164 KiB | ||||
7 | Elfogadva | 3ms | 3328 KiB | ||||
8 | Elfogadva | 3ms | 3604 KiB | ||||
9 | Elfogadva | 4ms | 3908 KiB | ||||
subtask3 | 15/15 | ||||||
10 | Elfogadva | 10ms | 5752 KiB | ||||
11 | Elfogadva | 4ms | 5936 KiB | ||||
12 | Elfogadva | 48ms | 11768 KiB | ||||
13 | Elfogadva | 32ms | 11456 KiB | ||||
14 | Elfogadva | 39ms | 12192 KiB | ||||
subtask4 | 20/20 | ||||||
15 | Elfogadva | 3ms | 4732 KiB | ||||
16 | Elfogadva | 3ms | 5184 KiB | ||||
17 | Elfogadva | 8ms | 8240 KiB | ||||
18 | Elfogadva | 23ms | 18892 KiB | ||||
19 | Elfogadva | 29ms | 25136 KiB | ||||
20 | Elfogadva | 39ms | 32868 KiB | ||||
21 | Elfogadva | 32ms | 30592 KiB | ||||
22 | Elfogadva | 48ms | 36460 KiB | ||||
subtask5 | 50/50 | ||||||
23 | Elfogadva | 64ms | 12656 KiB | ||||
24 | Elfogadva | 37ms | 9076 KiB | ||||
25 | Elfogadva | 46ms | 9924 KiB | ||||
26 | Elfogadva | 18ms | 6368 KiB | ||||
27 | Elfogadva | 35ms | 9388 KiB | ||||
28 | Elfogadva | 59ms | 12528 KiB | ||||
29 | Elfogadva | 67ms | 12252 KiB | ||||
30 | Elfogadva | 34ms | 11600 KiB | ||||
31 | Elfogadva | 71ms | 13312 KiB |