5114 | 2023-04-17 22:52:27 | nmarci | Testvérvárosok | cpp11 | Futási hiba 30/100 | 648ms | 522528 KiB |
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <deque>
#include <queue>
#include <algorithm>
using namespace std;
using ll = long long int;
int k;
vector<pair<int,int>> g[50010];
ll dp[50010][1010] = { 0 };
ll sol = 0; //lehet overflow
void dfs(int node, int prev = -1) {
dp[node][0] = 1;
for (auto i : g[node]) {
if (i.first != prev) {
dfs(i.first, node);
ll mock[1010] = { 0 };
for (int j = 0; j < k; ++j) {
int kellmeg = (k - ((j + i.second) % k)) % k;
//cerr << ((j + i.second) % k) << " " << kellmeg << endl;
// cerr << node << endl;
// cerr << j << " " << i.second << " " << kellmeg << " " << dp[node][kellmeg] * dp[i.first][j] << endl;
sol += dp[node][kellmeg] * dp[i.first][j];
mock[(j + i.second) % k] += dp[i.first][j];
}
for (int j = 0; j < k; ++j) {
dp[node][j] += mock[j];
}
}
}
}
int main()
{
int n;
cin >> n >> k;
for (int i = 0; i < n - 1; ++i) {
int a, b, t;
cin >> a >> b >> t;
g[a].emplace_back(b, t);
g[b].emplace_back(a, t);
}
//cerr << endl << endl;
dfs(1);
cout << sol << endl;
/*for (int i = 1; i <= n; ++i) {
for (int j = 0; j < k; ++j) {
cerr << dp[i][j] << " ";
}
cerr << endl;
}*/
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 4ms | 4368 KiB | ||||
2 | Elfogadva | 4ms | 5776 KiB | ||||
subtask2 | 15/15 | ||||||
3 | Elfogadva | 4ms | 6400 KiB | ||||
4 | Elfogadva | 4ms | 5348 KiB | ||||
5 | Elfogadva | 7ms | 12792 KiB | ||||
6 | Elfogadva | 16ms | 15484 KiB | ||||
7 | Elfogadva | 7ms | 12124 KiB | ||||
8 | Elfogadva | 9ms | 11628 KiB | ||||
9 | Elfogadva | 8ms | 16224 KiB | ||||
subtask3 | 15/15 | ||||||
10 | Elfogadva | 52ms | 114336 KiB | ||||
11 | Elfogadva | 37ms | 73892 KiB | ||||
12 | Elfogadva | 232ms | 404256 KiB | ||||
13 | Elfogadva | 214ms | 374348 KiB | ||||
14 | Elfogadva | 202ms | 421696 KiB | ||||
subtask4 | 0/20 | ||||||
15 | Elfogadva | 9ms | 18448 KiB | ||||
16 | Elfogadva | 27ms | 39152 KiB | ||||
17 | Elfogadva | 105ms | 199688 KiB | ||||
18 | Futási hiba | 231ms | 522528 KiB | ||||
19 | Futási hiba | 193ms | 522492 KiB | ||||
20 | Futási hiba | 250ms | 522472 KiB | ||||
21 | Futási hiba | 246ms | 522444 KiB | ||||
22 | Futási hiba | 259ms | 522216 KiB | ||||
subtask5 | 0/50 | ||||||
23 | Futási hiba | 568ms | 522156 KiB | ||||
24 | Elfogadva | 377ms | 341600 KiB | ||||
25 | Elfogadva | 382ms | 431964 KiB | ||||
26 | Elfogadva | 128ms | 116476 KiB | ||||
27 | Elfogadva | 307ms | 335996 KiB | ||||
28 | Elfogadva | 379ms | 499668 KiB | ||||
29 | Futási hiba | 648ms | 521956 KiB | ||||
30 | Elfogadva | 222ms | 385276 KiB | ||||
31 | Futási hiba | 531ms | 521444 KiB |