CF1666J.Job Lookup
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Julia 的 n 个朋友想在他们刚搬到的新国家创办一家初创公司。他们根据各自的工作内容,从最前端的任务到最后端的任务,给彼此分配了 1 到 n 的编号。他们还估算了一个矩阵 c,其中 cij=cji 表示从事工作 i 和 j 的人每月之间的平均消息数。
现在他们想要建立一个层级树。这个树是一个二叉树,每个节点包含团队中的一名成员。某个成员会被选为团队的领导,作为根节点。为了让领导能够方便地联系任何下属,对于树中的每个节点 v,必须满足:其左子树中的所有成员编号都小于 v,右子树中的所有成员编号都大于 v。
层级树确定后,从事工作 i 和 j 的人将通过树中连接他们节点的最短路径进行交流。我们用 dij 表示这条路径的长度。因此,他们的通信代价为 cij⋅dij。
你的任务是构建一个层级树,使得所有成员对之间的通信总成本 ∑1≤i<j≤ncij⋅dij 最小。
输入格式
第一行包含一个整数 n(1≤n≤200),表示组织初创公司的团队成员数。
接下来的 n 行,每行包含 n 个整数,第 i 行第 j 个数为 cij,表示成员 i 和成员 j 之间每月的消息数估计值(0≤cij≤109;cij=cji;cii=0)。
输出格式
输出一个能使通信总成本最小的层级树的描述。对于每个编号从 1 到 n 的成员,输出其父节点的成员编号,如果该成员是领导,则输出 0。如果有多个最优解,输出任意一个即可。
输入输出样例
输入#1
4 0 566 1 0 566 0 239 30 1 239 0 1 0 30 1 0
输出#1
2 4 2 0
说明/提示
最小可能的通信总成本为 566⋅1+239⋅1+30⋅1+1⋅2+1⋅2=839:

由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?