| 5113 | 2023-04-17 22:49:09 | nmarci | Testvérvárosok | cpp11 | Runtime error 80/100 | 639ms | 522848 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];
int dp[50010][1010] = { 0 };
int 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);
int 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;
}| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 4ms | 4224 KiB | ||||
| 2 | Accepted | 4ms | 5292 KiB | ||||
| subtask2 | 15/15 | ||||||
| 3 | Accepted | 4ms | 5484 KiB | ||||
| 4 | Accepted | 4ms | 4960 KiB | ||||
| 5 | Accepted | 7ms | 10976 KiB | ||||
| 6 | Accepted | 13ms | 11240 KiB | ||||
| 7 | Accepted | 6ms | 11024 KiB | ||||
| 8 | Accepted | 8ms | 8720 KiB | ||||
| 9 | Accepted | 8ms | 14032 KiB | ||||
| subtask3 | 15/15 | ||||||
| 10 | Accepted | 57ms | 109840 KiB | ||||
| 11 | Accepted | 21ms | 50740 KiB | ||||
| 12 | Accepted | 218ms | 394384 KiB | ||||
| 13 | Accepted | 166ms | 363952 KiB | ||||
| 14 | Accepted | 190ms | 411152 KiB | ||||
| subtask4 | 0/20 | ||||||
| 15 | Accepted | 7ms | 13236 KiB | ||||
| 16 | Accepted | 17ms | 23784 KiB | ||||
| 17 | Accepted | 68ms | 106836 KiB | ||||
| 18 | Accepted | 300ms | 373840 KiB | ||||
| 19 | Runtime error | 239ms | 522848 KiB | ||||
| 20 | Runtime error | 250ms | 522828 KiB | ||||
| 21 | Runtime error | 202ms | 522796 KiB | ||||
| 22 | Runtime error | 209ms | 522768 KiB | ||||
| subtask5 | 50/50 | ||||||
| 23 | Accepted | 483ms | 368488 KiB | ||||
| 24 | Accepted | 305ms | 211960 KiB | ||||
| 25 | Accepted | 305ms | 267960 KiB | ||||
| 26 | Accepted | 115ms | 81260 KiB | ||||
| 27 | Accepted | 238ms | 209796 KiB | ||||
| 28 | Accepted | 317ms | 398328 KiB | ||||
| 29 | Accepted | 639ms | 376940 KiB | ||||
| 30 | Accepted | 208ms | 380032 KiB | ||||
| 31 | Accepted | 560ms | 415220 KiB | ||||