CJOJ 2171 火车站开饭店(树型动态规划)

CJOJ 2171 火车站开饭店(树型动态规划)

Description

政府邀请了你在火车站开饭店,但不允许同时在两个相连的火车站开。任意两个火车站有且只有一条路径,每个火车站最多有 50 个和它相连接的火车站。
告诉你每个火车站的利润,问你可以获得的最大利润为多少?
例如下图是火车站网络:
这里写图片描述
最佳投资方案是 1 , 2 , 5 , 6 这 4 个火车站开饭店可以获得的利润为 90.

Input

第一行输入整数 N(<=100000), 表示有 N 个火车站,分别用 1,2,……..,N 来编号。
接下来 N 行,每行一个整数表示每个站点的利润,接下来 N-1 行描述火车站网络,每行两个整数,表示相连接的两个站点。

Output

输出一个整数表示可以获得的最大利润。

Sample Input

6
10
20
25
40
30
30
4 5
4 6
3 4
1 3
2 3

Sample Output

90

Http

CJOJ:http://oj.changjun.com.cn/problem/detail/pid/2171

Source

树型动态规划

解决思路

这道题与POJ2342真是有异曲同工之妙,这里不再过多叙述,请参考这里

代码

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;const int maxN=100001;
const int inf=2147483647;int n;
int Value[maxN];
vector<int> E[maxN];
int F[maxN][5]={0};
bool vis[maxN]={0};void dfs(int u);int main()
{int u,v;cin>>n;for (int i=1;i<=n;i++)scanf("%d",&Value[i]);for (int i=1;i<n;i++){scanf("%d%d",&u,&v);E[u].push_back(v);E[v].push_back(u);}dfs(1);cout<<max(F[1][1],F[1][0])<<endl;return 0;
}void dfs(int u)
{vis[u]=1;F[u][1]=Value[u];F[u][0]=0;for (int i=0;i<E[u].size();i++){int v=E[u][i];if (vis[v]==0){dfs(v);F[u][1]+=F[v][0];F[u][0]+=max(F[v][1],F[v][0]);}}return;
}

转载于:https://www.cnblogs.com/SYCstudio/p/7138199.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各视频、各音频之间格式任意玩弄(图文详解)

写在前面说的话 在这里&#xff0c;记录下来&#xff0c;是为了方便以后偶尔所制作所需和你们前来的浏览学习。 学会&#xff0c;玩弄一些视频和音频的软件&#xff0c;只有好处没有害处。同时&#xff0c;也不需很多时间&#xff0c;练练手罢了。也是方便自己所用吧&#xff0…

oracle 如何查看日志?

2019独角兽企业重金招聘Python工程师标准>>> Oracle日志查看一&#xff0e;Oracle日志的路径&#xff1a;登录&#xff1a;sqlplus "/as sysdba"查看路径&#xff1a;SQL> select * from v$logfile;SQL> select * from v$logfile;(#日志文件路径)二…

回归_英国酒精和香烟关系

sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare 数据统计分析联系:&#xff31;&#xff31;&#xff1a;&a…

【转】如何用Maven创建web项目(具体步骤)

使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project &#xff08;不使用骨架&#xff09; 这里的Packing 选择 war的形式 由于packing是war包&#xff0c;那么下面也就多出了webapp的目录 由于我们的项目要使用eclipse发…

可能是目前最详细的Redis内存模型及应用解读

Redis是目前最火爆的内存数据库之一&#xff0c;通过在内存中读写数据&#xff0c;大大提高了读写速度&#xff0c;可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时&#xff0c;会接触Redis的5种对象类型&#xff1a;字符串、哈希、列表、集合、有序集合。丰富…

POJ 1696 Space Ant 极角排序(叉积的应用)

题目大意&#xff1a;给出n个点的编号和坐标&#xff0c;按逆时针方向连接着n个点&#xff0c;按连接的先后顺序输出每个点的编号。 题目思路&#xff1a;Cross&#xff08;a,b&#xff09;表示a,b的叉积&#xff0c;若小于0&#xff1a;a在b的逆时针方向&#xff0c;若大于0a在…

SuperMap iDesktop之导入数据

SuperMap作为一个平台软件有自己的数据格式&#xff0c;现要将ESRI的SHP数据导入到SuperMap的udb数据库中&#xff0c;可以完成导入&#xff0c;但也不得不说几点问题。 下面是ArcGIS中批量导入SHP的操作界面。 比较分析 &#xff08;1&#xff09;界面简洁性 明显ArcGIS要简洁…

MyBatis 实践 -配置

MyBatis 实践标签&#xff1a; Java与存储 Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名称随意),其配置内容和顺序例如以下: properties : 属性(文件)载入/配置settings : 全局配置參数typeAliases : 定义类型别名typeHandlers : 类型处理器objectF…

DM365视频处理流程/DM368 NAND Flash启动揭秘

DM365的视频处理涉及到三个相关处理器&#xff0c;分别是视频采集芯片、ARM处理器和视频图像协处理器&#xff08;VICP&#xff09;&#xff0c;整个处理流程由ARM核协调。视频处理主要涉及三个处理流程&#xff0c;分别是视频采集、视频编码和对编码后的视频的处理&#xff0c…

系统的Drawable(四)-LayerListDrawable

系统的Drawable(四)-LayerListDrawable 学习自 https://blog.csdn.net/u014695188/article/details/52815444 LayerListDrawable 漫谈 使用layer-list可以将多个drawable按照顺序层叠在一起显示&#xff0c;默认情况下&#xff0c;所有的item中的drawable都会自动根据它附上vie…

图像处理:镜头频率(衍射极限) 和 相机采样:显微镜的采样定理

采样定理大家都知道&#xff0c;相信不用多说。 我自己写下来给自己看。 下面&#xff0c;我总结 大家平时照相的镜头或者显微镜的物镜的情况下&#xff1a; 采样频率是指图像在数字化的时候的过程&#xff0c;实际上就是我们相机感光元件CCD或者CMOS的一个个小像元把模拟的连续…

像素越多越好?像元的面积越小越好?为何底大一级压死人?

像素越多越好&#xff1f;像素点的面积越小越好&#xff1f;为何底大一级压死人&#xff1f; 像素是&#xff1a;图像最小单元的数量&#xff0c;例如6000*4000&#xff0c;像素数量就是24*10^6。 像素太少当然图像就看不见了&#xff0c;看不清晰了。 但是现在几乎所有手机和相…

DM6446开发攻略:V4L2视频驱动和应用分析

针对DAVINCI DM6446平台&#xff0c;网络上也有很多网友写了V4L2的驱动&#xff0c;但只是解析Montavistalinux-2.6.10 V4L2的原理、结构和函数&#xff0c;深度不够。本文决定把Montavista 的Linux-2.6.18 V4L2好好分析一下&#xff0c;顺便讲解在产品中的应用&#xff0c;满足…

相机像素尺寸(像元大小)和成像系统分辨率之间的关系

相机像素尺寸&#xff08;像元大小&#xff09;和成像系统分辨率之间的关系 在显微成像系统中&#xff0c;常常会用分辨率来评价其成像能力的好坏。这里的分辨率通常是指光学系统的极限分辨率以及成像探测器的图像分辨率。最终图像所呈现出的实际分辨率&#xff0c;取决于二者的…

工业相机之全局曝光与卷帘曝光

曝光方式包括两种&#xff1a; 全局曝光&#xff08;global shutter&#xff09;卷帘曝光&#xff08;rolling shutter&#xff09; CCD相机都是全局曝光&#xff0c;CMOS相机既有全局曝光也有卷帘曝光 全局曝光 全局曝光的方式比较简单。也就是说光圈打开后&#xff0c;整个图…

.NET 环境中使用RabbitMQ

在企业应用系统领域&#xff0c;会面对不同系统之间的通信、集成与整合&#xff0c;尤其当面临异构系统时&#xff0c;这种分布式的调用与通信变得越发重要。其次&#xff0c;系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方&#xff0c;比如发送短信&#…

成像质量、像素个数、感光元件尺寸的关系

成像质量、像素个数、感光元件尺寸的关系 感光元件 (影像传感器) 就是拍摄的照片最终成像的位置。相当于传统相机里面的胶卷&#xff0c;不同相机的感光元件尺寸是不一样的。 1. 像素的含义 两个 100 平方米的房子 A 和 B&#xff0c;A 房子里面平均分成 10 个房间&#xff…

15、iOS开发之duplicate symbols for architecture x86_64错误

1. 错误提示 2. 分析错误原因 3. 解决问题办法 一、错误提示 在我们写代码过程中可能会经常遇到这样一个错误&#xff1a; [objc] view plaincopy print?<span style"font-size:32px;color:#ff0000;">ld: 4 duplicate symbols for architecture x86_64 clang…

机器视觉工业镜头-Computar

日本Computar镜头&#xff0c;全球工业镜头、CCTV镜头市场占有率第一。CBC板式会社成立于1925年&#xff0c;总部在日本东京。1960年 CBC香港公司成立&#xff0c;是computar镜头走向国际市场的前奏。 1979年 研制出第一只手动变焦镜头。 1985年 研制出第一款非球面高速镜头。1…

第四章:Django 模型 —— 设计系统表

1. Django框架提供了完善的模型&#xff08;Model &#xff09;层来创建和存储数据&#xff0c;每一个模型对应数据库中的唯一的一张表。 2. Django 模型基础知识&#xff1a; 。每一本模型是一个Python类&#xff0c;继承了django.db.models.Model类 。该模型中每一个属性一个…