uva 10247 - Complete Tree Labeling

本文讨论了如何计算给定深度和叉数的完全树的构造方式数量,通过递推公式实现复杂度降低,提供了高效求解方法。

题意:给你一个  K叉的 D深度的完全树, 一共有1 到 (d-1) *k 权值的结点  ,子结点的权值大于父节点,问你有多少种树?

解法:最上面的顶点肯定是最小的!还剩(d - 1)* k - 1个结点,也就是还有选出k个(d - 1)深度的树

递推:f[n]=multiply{C(i*g[n-1],g[n-1])*f[n-1]}(1<=i<=k)。其实i从k到1比较好理解!QAQ看了好久木有看懂!还请教了CSU的斌牛!

连接:点击打开链接


代码:

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
	public static void main(String [] args) {
		Scanner cin = new Scanner(System.in);
		BigInteger[][] dp = new BigInteger[30][30];
		int [][] g = new int[30][30];
		for (int i = 1; i <= 21; i++) {
			dp[i][0] = new BigInteger("1");
			g[i][0] = 1;
			for (int j = 1; i * j <= 21; j++) {
				dp[i][j] = new BigInteger("1");
				g[i][j] = i * g[i][j - 1];
				g[i][j]++;
				for (int k = i; k >= 1; k--)
					dp[i][j] = dp[i][j].multiply(dp[i][j - 1].multiply(C(k * g[i][j - 1], g[i][j - 1])));
			}
		}
		while (cin.hasNext()) {
			int k = cin.nextInt();
			int d = cin.nextInt();
			System.out.println(dp[k][d]);
		}
	}
	public static BigInteger C(int m, int n) {
		if (m - n < n)
			n = m - n;
		BigInteger res = new BigInteger("1");
		for (int i = 1; i <= n; i++)
			res = res.multiply(BigInteger.valueOf(m - i + 1)).divide(BigInteger.valueOf(i));
		return res;
	}

}

### 基于分布匹配的主动标注方法 在机器学习领域,基于分布匹配的主动标注(Distribution Matching Based Active Labeling, DMAL)是一种旨在通过最小化源域和目标域之间的差异来提高模型泛化能力的技术。该方法特别适用于跨域适应场景,在这些场景中,训练数据和测试数据可能来自不同的分布。 #### 方法概述 DMAL的核心理念在于选择那些能够使源域和目标域特征空间尽可能相似的样本进行人工标注。具体来说: - **初始阶段**:从大量未标记的目标域数据集中随机选取一部分作为种子集合,并对其进行人工标注。 - **迭代过程**:利用已有的带标签数据训练一个分类器;接着计算剩余无标签数据与当前已有标签数据之间分布的距离度量;最后挑选出使得两个分布最接近的一批样本来请求专家标注[^1]。 #### 实现细节 为了实现上述流程中的关键环节——即如何衡量不同分布间的距离并据此选择最优样本,研究者们提出了多种策略和技术手段: - **最大均值差异(Maximum Mean Discrepancy, MMD)**:这是一种广泛使用的核方法,用来量化两组样本所属概率密度函数间差距大小的一种统计工具。MMD能够在不需要显式估计任何参数的情况下比较任意复杂形式的概率分布[^2]。 - **对抗网络(Adversarial Networks)**:近年来兴起的一个热门方向是采用生成对抗网络(GANs)框架下的判别器部分充当二元分类器的角色,以此评估真假样本混合体内部结构特性上的异同程度。这种方法不仅限定了理论边界而且提供了更加灵活有效的解决方案[^3]。 ```python import numpy as np from sklearn.metrics import pairwise_distances_argmin_min def distribution_matching_active_labeling(X_unlabeled, X_labeled): """ Select samples from unlabeled set that minimize the distance between distributions. Args: X_unlabeled (numpy.ndarray): Unlabeled data points. X_labeled (numpy.ndarray): Labeled data points. Returns: list: Indices of selected samples to be labeled next. """ distances = pairwise_distances_argmin_min
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值