Sponsors

Codeforces Round #382 (Div. 2), problem: (E) Ostap and Tree, Accepted Solution in C/C++

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define M	1000000007

int add(int a, int b) { return (a + b) % M; }
int mult(int a, int b) { return ((long long) a * b) % M; }

#define K	20

struct edge {
	int v;
	struct edge *next;
};

struct vertex {
	struct edge *list;
	int dp[K + 1][K + 2];
} *vv;

int max(int a, int b, int k) {
	return a != k + 1 && b != k + 1 ? (a > b ? a : b) : (a == k + 1 ? b : a);
}

void edgeadd(int u, int v) {
	struct edge *x = malloc(sizeof(*x));

	x->v = v;
	x->next = vv[u].list;
	vv[u].list = x;
}

void dfs(int u, int v, int n, int k) {
	int i, j, wi, wj, dp[K + 1][K + 2];
	struct edge *x;

	for (x = vv[v].list; x != NULL; x = x->next)
		if (x->v != u) 
			dfs(v, x->v, n, k);
	vv[v].dp[0][k + 1] = vv[v].dp[k][0] = 1; /* the jth node */
	for (x = vv[v].list; x != NULL; x = x->next) { /* the tree */
		int w = x->v;

		memset(dp, 0, (K + 1) * (K + 2) * sizeof(**dp));
		if (w != u) {
			for (i = 0; i <= k; i++)
				for (j = 0; j <= k + 1; j++)
					if (vv[v].dp[i][j] != 0)
						for (wi = 0; wi <= k; wi++)
							for (wj = 0; wj <= k + 1; wj++)
								if (vv[w].dp[wi][wj] != 0) {
									int i_ = i < wi + 1 ? i : wi + 1;
									int j_ = k + 1;

									if (j != k + 1 && j + wi + 1 > k)
										j_ = max(j_, j, k);
									if (wj != k + 1 && wj + 1 + i > k)
										j_ = max(j_, wj + 1, k);
									if (j_ == k)
										continue;
									dp[i_][j_] = add(dp[i_][j_], mult(vv[v].dp[i][j], vv[w].dp[wi][wj]));
								}
			memcpy(vv[v].dp, dp, sizeof(**dp) * (K + 1) * (K + 2));
		}
	}
}

int main() {
	int i, n, k, cnt;

	scanf("%d%d", &n, &k);
	vv = calloc(n, sizeof(*vv));
	if (k == 0)
		printf("1\n");
	else {
		for (i = 1; i < n; i++) {
			int u, v;

			scanf("%d%d", &u, &v);
			u--, v--;
			edgeadd(u, v);
			edgeadd(v, u);
		}
		dfs(-1, 0, n, k);
		cnt = 0;
		for (i = 0; i <= k; i++)
			cnt = add(cnt, vv[0].dp[i][k + 1]);
		printf("%d\n", cnt);
	}
	return 0;
}

One to watch: Macquarie...

Macquarie Predicts Double-Digit Returns for ASX Healthcare Stock Macquarie Group,...

THE FREEPER CANTEEN –...

The Freeper Canteen: A Look That Up, It Must...

215% PENGU Rally Incoming?...

215% PENGU Rally Incoming? Analyst Predicts Imminent Breakout The cryptocurrency...

Junk is the new...

Junk is the New Punk: Why We're Falling Back...

Are weighted vests good...

Unlocking the Power of AI-Generated Content for SEO In today's...

Are weighted vests good...

Unlocking the Power of AI-Generated Content: A Boon or...

One to watch: Macquarie tips double-digit returns for this ASX healthcare stock

Macquarie Predicts Double-Digit Returns for ASX Healthcare Stock Macquarie Group, a prominent Australian financial services company, has issued a bullish prediction for a specific ASX-listed...

THE FREEPER CANTEEN – The Look That Up, It Must Be On My Bucket List Quiz – Wednesday, August 27, 2025

The Freeper Canteen: A Look That Up, It Must Be On My Bucket List The Freeper Canteen, a unique online community, has recently launched a...

215% PENGU Rally Incoming? Analyst Says Token ‘Inches’ From Next Leg Up

215% PENGU Rally Incoming? Analyst Predicts Imminent Breakout The cryptocurrency market is constantly fluctuating, and predicting the next big move is a challenge. However, one...

Junk is the new punk: Why we’re falling back in love with retro tech

Junk is the New Punk: Why We're Falling Back in Love with Retro Tech In a world dominated by sleek, minimalist designs and cutting-edge technology,...

Are weighted vests good for bones and muscle? Fact-checking a fitness trend – NPR

Unlocking the Power of AI-Generated Content for SEO In today's digital landscape, search engine optimization (SEO) is paramount for online success. But creating high-quality,...

Are weighted vests good for bones and muscle? Fact-checking a fitness trend – NPR

Unlocking the Power of AI-Generated Content: A Boon or Bane for SEO? The world of search engine optimization (SEO) is constantly evolving, and the recent...

TSMC cuts Chinese tools from cutting-edge chip production to avoid US ire – Nikkei Asia

TSMC Ditches Chinese Tools for Cutting-Edge Chip Production Taiwan Semiconductor Manufacturing Company (TSMC), the world's leading chipmaker, is reportedly phasing out Chinese-made equipment from its...

Google Messages beta rolling out QR code key verification – 9to5Google

Google Messages Adds QR Code Key Verification for Enhanced Security Google is bolstering the security of its Messages app with a new feature rolling out...

A Secretive US Space Plane Will Soon Test Quantum Navigation Technology

## US Space Plane to Test Revolutionary Quantum Navigation Technology The United States is on the cusp of a significant leap forward in space navigation....