当前位置: 首页 > news >正文

网络教学网站建设公司名称logo设计

网络教学网站建设,公司名称logo设计,医院做网站的意义,郑州企业网站制作公司题目描述 某大学有 nnn 个职员#xff0c;编号为 1…n1\ldots n1…n。 他们之间有从属关系#xff0c;也就是说他们的关系就像一棵以校长为根的树#xff0c;父结点就是子结点的直接上司。 现在有个周年庆宴会#xff0c;宴会每邀请来一个职员都会增加一定的快乐指数 ri…题目描述 某大学有 nnn 个职员编号为 1…n1\ldots n1…n。 他们之间有从属关系也就是说他们的关系就像一棵以校长为根的树父结点就是子结点的直接上司。 现在有个周年庆宴会宴会每邀请来一个职员都会增加一定的快乐指数 rir_iri​ 但是呢如果某个职员的直接上司来参加舞会了那么这个职员就无论如何也不肯来参加舞会了。 所以请你编程计算邀请哪些职员可以使快乐指数最大求最大的快乐指数。 输入格式 输入的第一行是一个整数 nnn。 第 222 到第 (n1)(n 1)(n1) 行每行一个整数第 (i1)(i1)(i1) 行的整数表示 iii 号职员的快乐指数 rir_iri​。 第 (n2)(n 2)(n2) 到第 2n2n2n 行每行输入一对整数 l,kl, kl,k代表 kkk 是 lll 的直接上司。 输出格式 输出一行一个整数代表最大的快乐指数。 样例 #1 样例输入 #1 7 1 1 1 1 1 1 1 1 3 2 3 6 4 7 4 4 5 3 5样例输出 #1 5提示 数据规模与约定 对于 100%100\%100% 的数据保证 1≤n≤6×1031\leq n \leq 6 \times 10^31≤n≤6×103−128≤ri≤127-128 \leq r_i\leq 127−128≤ri​≤1271≤l,k≤n1 \leq l, k \leq n1≤l,k≤n且给出的关系一定是一棵树。 解题思路 首先注意题中说的是“如果某个职员的直接上司来参加舞会了那么这个职员就无论如何也不肯来参加舞会了。” 也就是说间接上司来不来是无所谓的 接下来讲解本题的解题思路 这道题可以算是树形DP的入门级题目了 树形DP就是在树形结构中采用动态规划 说了但好像什么都没说 常规思路就是自顶向下递推确定叶子节点后逐级回归更新父节点 那么这道题为什么采用树形DP呢 首先题目中给出的是一棵树 其次我们想要知道舞会的最大快乐指数除了遍历每一种可能外好像别无选择 那么降低时间复杂度就要想到DP在本题中也就是树形DP 思路很简单每个职员只有两种状态来、不来 我们用dp[now][1]表示来dp[now][0]表示不来 那么有 //树形DP void dfs(int now) {//参加dp[now][1] happy[now];//参加初始化为自己的快乐指数//不参加for (int i head[now]; i ! -1; i edges[i].next) {//遍历子节点int v edges[i].v;dfs(v);//返回后更新dp[now][0] max(dp[v][0], dp[v][1]);//不参加需要累加子节点来的情况dp[now][1] dp[v][0];//参加需要累加子节点不来的情况} }最后AC代码如下 #include iostream #include string.h using namespace std; const int max_n 6e3; const int min_r -128; const int max_r 127;int n, u, v; int happy[max_n 1]; int in[max_n 1]; //链式前向星 struct edge { int v, next; }edges[max_n 1]; int head[max_n 1]; int tot -1; //树形DP long long dp[max_n 1][2];//存边 void add_edge(int u, int v) {edges[tot] { v,head[u] }; head[u] tot; }//树形DP void dfs(int now) {//参加dp[now][1] happy[now];//参加初始化为自己的快乐指数//不参加for (int i head[now]; i ! -1; i edges[i].next) {//遍历子节点int v edges[i].v;dfs(v);//返回后更新dp[now][0] max(dp[v][0], dp[v][1]);//不参加需要累加子节点来的情况dp[now][1] dp[v][0];//参加需要累加子节点不来的情况} }int main() {memset(head 1, -1, sizeof(int) * max_n);cin n;for (int i 1; i n; i) cin happy[i];for (int i 1; i n; i) {//存图cin u v;add_edge(v, u);//反向存边自顶向下in[u];}for (int i 1; i n; i)if (!in[i]) {//从根节点开始dfs(i);cout max(dp[i][0], dp[i][1]) endl;break;}return 0; }
http://www.tj-hxxt.cn/news/135453.html

相关文章:

  • 保山网站制作用div做网站中间部分
  • 手机网站 制作wordpress信息流主题
  • 河北邢台官方网站wordpress手机页面没有注册
  • 黄村网站建设价格常见的三种网站类型
  • 怎让做淘宝网站微商城开发用华网天下首选
  • 网站升级维护需要多久信息流广告代理公司排名
  • 网站公司排行榜长沙微信群
  • 色一把做最好的网站南宁制作网站服务商
  • 武进网站建设机构做名宿比较好的网站
  • 网站收款即时到账怎么做的如何选择南京网站建设
  • 品牌网站建设内容网站开发服务计入什么科目
  • 怎么给网站刷流量wordpress编辑器自动加p标签
  • 唐山公司网站建设 中企动力济南哪家公司做网站好
  • 深圳市网站建设制作设计品牌怎么自己做彩票网站
  • 网站自动更新时间代码wordpress哪个主题适合做网址导航
  • 哪些网站有搜索引擎作弊的呼和浩特公司做网站
  • 青岛设计网站的公司哪家好下载的网站模板怎么编辑
  • 网站建设绿茶a站怎么进
  • 河南商务学校网站建设学建筑设计出来能干嘛
  • 公司网站建设手机端跟PC端陕西网站制作电话
  • 衡阳商城网站制作免费下优化大师
  • 贵阳网站设计报价青岛公司网站建设公司
  • 信息发布网站开发wordpress分类目录双列显示
  • 网站关键词优化案例城市分站cms
  • 网站后台用什么语言xampp wordpress 建站
  • 一个网站能放多少关键词国企招聘网最新招聘2023
  • 怎么评价一个网站做的好否seo 公司
  • 网站开发维护的好处网络营销策略方案
  • 网站后台html模板网站推广多少钱一年
  • 松江醉白池网站建设竖排导航网站