人品问题

article/2025/9/19 2:49:39

Description
网上出现了一种高科技产品——人品测试器。只要你把你的真实姓名输入进去,系统将自动输出你的人品指数。yzx不相信自己的人品为0。经过了许多研究后,yzx得出了一个更为科学的人品计算方法。这种方法的理论依据是一个非常重要的结论:人品具有遗传性。因此,一个人的人品完全由他的祖先决定。yzx提出的人品计算方法相当简单,只需要将测试对象的k个祖先的人品指数(可能为负数)加起来即可。选择哪k个祖先可以由测试者自己决定,但必须要满足这个要求:如果除自己的父母之外的某个祖先被选了,那么他的下一代必需要选(不允许跳过某一代选择更远的祖先,否则将失去遗传的意义)。
非常不幸的是,yzx测试了若干次,他的人品值仍然不能为一个正数。现在yzx需要你帮助他找到选择祖先的最优方案,使得他的人品值最大。

Input
第一行是两个用空格隔开的正整数n和k,其中n代表yzx已知的家谱中共有多少人(包括yzx本身在内),k的意义参见问题描述。
第二行有n-1个用空格隔开的整数(可能为负),这些数的绝对值在2^15以内。其中,第i个数表示编号为i+1的人的人品值。我们规定,编号为1的人是yzx。
接下来n行每行有两个用空格隔开的数,其中第i行的两个数分别表示第i个人的父亲和母亲的编号。如果某个人的父亲或母亲不在这个家谱内,则在表示他的父亲或母亲的编号时用0代替。
除yzx以外的所有人都是yzx的祖先,他们都会作为父亲或母亲被描述到。每个人都不可能同时作为多个人的父亲或者是母亲。

Output
一个整数,表示yzx能够得到的最大人品值。

Sample Input
6 3
-2 3 -2 3 -1
2 3
4 5
0 6
0 0
0 0
0 0

Sample Output
4
样例说明下图显示了输入样例所描述的家谱图。括号里的数表示的是该人的人品值。
在这里插入图片描述

显然,选择祖先2、3、5能使yzx的人品值达到最大。这个最大值为4,表示yzx能够得到的最大人品值。

Data Constraint
50%的数据,n<=10。
100%的数据,n<=100。

.
.
.
.
.
.
分析
树形DP

.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std; bool f[200][200];
long long dp[200][200];
int l[200],r[200],rp[200];int dfs(int num,int tj)
{if (f[num][tj]==true) return dp[num][tj];if (tj==0){dp[num][tj]=0;return dp[num][tj];}if (num==0){dp[num][tj]=-2147483647;return dp[num][tj];}if (tj==1){dp[num][tj]=rp[num];return dp[num][tj];}long long ans=-2147483647;for (int i=0;i<=tj-1;i++)ans=max(ans,(long long)rp[num]+dfs(l[num],i)+dfs(r[num],tj-i-1));f[num][tj]=true;dp[num][tj]=ans;return ans;
}int main()
{int n,k;scanf("%d%d",&n,&k);rp[1]=0;for (int i=2;i<=n;i++)scanf("%d",&rp[i]);for (int i=1;i<=n;i++)scanf("%d%d",&l[i],&r[i]);memset(f,false,sizeof(f));printf("%d",dfs(1,k+1));return 0;
}

转载于:https://www.cnblogs.com/YYC-0304/p/10458946.html


http://chatgpt.dhexx.cn/article/p3c6EA8M.shtml

相关文章

人品差的人,开口闭口都是这些话,一定不要深交!

说话之道&#xff0c;也是为人之道。 言语是思想的发声&#xff0c;从一个人的话里&#xff0c;往往可以听出其内心的声音。 从而初步判断出一个人的人品如何&#xff0c;是否值得交往。 那些人品差的人&#xff0c;开口闭口都离不开以下三种话&#xff0c;身边若有此类人&a…

adb logcat 命令行用法

本文为转载。 作者 :万境绝尘 转载请著名出处 eclipse 自带的 LogCat 工具太垃圾了, 开始用 adb logcat 在终端查看日志; 1. 解析 adb logcat 的帮助信息 在命令行中输入 adb logcat --help 命令, 就可以显示该命令的帮助信息; [plain] view plain copy octopusoctopus:~$ ad…

java logcat_logcat -- 基本用法

1.Log类是一个日志类&#xff0c;我们可以在代码中使用logcat打印出消息 常见的日志记录方法有&#xff1a; v(String,String) --verbose 显示全部信息 d(String,String) -- debug 显示调试信息 i(String,String) -- information 显示一般信息 w(String,String) -- warning 显…

Logcat使用

目录 一、Logcat窗口 二、过滤 logcat 消息 三、Logcat的日志级别 四、设置日志信息颜色 一、Logcat窗口 Logcat在哪里&#xff1f;我都是直接点击工具栏中的Logcat图标。 Logcat窗口是用来查看应用日志的啦&#xff0c;我把每个部分标注了一下。 二、过滤 logcat 消息 一…

[Android]Logcat调试

Android采用Log(android.util.log)工具打印日志&#xff0c;它将各类日志划分为五个等级。 Log.e 打印错误信息 Log.w 打印警告信息 Log.i 打印一般信息 Log.d 打印调试信息 Log.v 打印冗余信息 不同等级的日志信息&#xff0c;在日志栏中会以不同颜色和等级(E、W、…

java logcat_使用 Logcat 写入和查看日志

Android Studio 中的 Logcat 窗口会显示系统消息,例如在进行垃圾回收时显示的消息,以及使用 Log 类添加到应用的消息。此窗口可以实时显示消息,也可以保留历史记录,因此您可以查看较早的消息。 要仅显示感兴趣的信息,您可以创建过滤器、修改消息中显示的信息量、设置优先级…

adb 抓取logcat 日志

&#xff08;1&#xff09;确保计算机里面有以下三个文件&#xff0c;才能抓取logcat日志&#xff08;只需要这三个文件就可以了&#xff09;。如果你的计算机有android sdk&#xff0c;以下三个文件会在你的sdk下的platform-tools文件夹里面。如果需要打印logcat日志的计算机没…

新版logcat最全使用指南

前言&#xff1a; 俗话说&#xff0c;工欲善其事&#xff0c;必先利其器。logcat是我们通过日志排查bug的重要武器之一。从某个版本开始&#xff0c;logcat改版了&#xff0c;改版之后&#xff0c;也许某些人觉得不太习惯&#xff0c;但是如果稍微学习下之后&#xff0c;就发现…

logcat命令介绍

1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具&#xff0c;可以用于得到程序的log信息 log类是一个日志类&#xff0c;可以在代码中使用logcat打印出消息 常见的日志纪录方法包括&#xff1a; 方法 描述 v(String,String) (vervbose)显示全部信息d(Stri…

logcat命令总结

一、logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具&#xff0c;可以用于得到程序的log信息 log类是一个日志类&#xff0c;可以在代码中使用logcat打印出消息 常见的日志纪录方法包括&#xff1a; 方法 描述 v(String,String) (verv…

Android Studio 使用 Logcat 写入和查看日志

使用 Logcat Logcat是日常开发的重要组成部分。如果您看到其中一个“强制关闭”或“已停止”对话框&#xff0c;您要做的第一件事就是检查与此崩溃相关的 Java 堆栈跟踪。这些被记录到一个名为 Logcat 的工具中&#xff0c;其目的是显示来自您设备的所有日志。它显示来自模拟器…

Android logcat命令详解

参考网址&#xff1a;https://www.cnblogs.com/JianXu/p/5468839.html 一、logcat命令介绍 二、logcat缓冲区 三、logcat命令参数 四、logcat格式化输出 五、logcat优先级 一、logcat命令介绍 1.android log系统 2.logcat介绍 logcat是android中的一个命令行工具&#xf…

机器学习:EM算法

一、初识EM算法 EM算法也称期望最大化&#xff08;Expectation-Maximum,简称EM&#xff09;算法。 它是一个基础算法&#xff0c;是很多机器学习领域算法的基础&#xff0c;比如隐式马尔科夫算法&#xff08;HMM&#xff09;等等。 EM算法是一种迭代优化策略&#xff0c;由于…

什么是em?

em是一个相对大小&#xff0c;我们可以这样来设置大小&#xff0c;如&#xff1a;1em,0.5em等。 所谓相对&#xff0c;必然存在一个参照物。这里的参照物指的就是父级元素的大小&#xff0c;按照css元素的继承关系&#xff08;并非所有元素都有继承关系&#xff09;&#xff0…

em和rem单位

我们在制作web端页面时&#xff0c;基本都是使用像素px作为单位&#xff0c;但是我们知道移动端设备具有多种多样的宽度&#xff0c;而使用物理单位在不同宽度和不同分辨率的手机上会有一定差异&#xff0c;那么在某些设备可能就会出现页面不美观的问题。所以为了解决此问题&am…

em与rem

rem 相对于浏览器的根元素html的字体大小来计算&#xff0c;如果没有设置&#xff0c;大多数浏览器默认大小默认为16px 默认情况下浏览器通常有字体大小 16px&#xff0c;但这可以被用户更改为从 9px 到 72px的任何值根 html 元素将继承浏览器中设置的字体大小&#xff0c;除非…

GMM的EM算法实现

在 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明进行了详细说明。本文主要针对如何用EM算法在混合高斯模型下进行聚类进行代码上的分析说明。 1. GMM模型: 每个 GMM 由…

【EM(electron migration)】

原创文章&#xff1a;EM现象出现的原因及解决办法 定义&#xff1a;金属线上允许通过的最大电流是有限的&#xff0c;过大的电流会使金属连线断裂&#xff0c;导致芯片失效&#xff0c;这种现象叫作EM现象。 过大的长期电流导致金属阳离子在正极堆积&#xff0c;形成小丘或突起…

HTML——em标签

<EM> 在W3school中HTML <em> 标签用于强调文本内容。对于所有浏览器来说&#xff0c;这意味着要把这段文字用斜体来显示。 如果只想使用斜体字来显示文本的话&#xff0c;请使用 <i> 标签。 除强调之外&#xff0c;当引入新的术语或在引用特定类型的术语或…

px、rem、em的区别与联系

一、区别&#xff1a; 1. px是固定的像素&#xff0c;一旦设置了就无法因为适应页面大小而改变。 2. em和rem相对于px更具有灵活性&#xff0c;他们是相对长度单位&#xff0c;意思是长度不是定死了的&#xff0c;更适用于响应式布局。 3.em是相对于其父元素来设置字体大小的&…