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,一经查实,立即删除!

相关文章

JavaWeb总结(十五)

AJAX&#xff08;Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;&#xff09; AJAX的作用是什么&#xff1f; 在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术 是一种用于创建快速动态网页的技术 通过在后台与服务器进行…

工业相机基类与实现

基类 namespace Cameron {//相机参数public struct CamPara{public int DeviceID; //设备描述public string Name;public int WorkMode; //工作类型,0为连续模式,1为触发模式public float Expours

物联网技术周报第 143 期: Unity 3D 和 Arduino 打造虚拟现实飞行器

新闻 \\\\t《西门子、阿里云签约助力中国工业物联网发展》德国工业集团西门子和中国阿里巴巴集团旗下的云计算公司阿里云&#xff19;日在柏林签署备忘录&#xff0c;共同推进中国工业物联网发展。根据备忘录内容&#xff0c;西门子和阿里云将发挥各自技术和行业优势&#xff…

不同平台下 sleep区别用法

应用程序&#xff1a; #include <syswait.h> usleep(n) //n微秒 Sleep&#xff08;n&#xff09;//n毫秒 sleep&#xff08;n&#xff09;//n秒 驱动程序&#xff1a; #include <linux/delay.h> mdelay(n) //微秒milliseconds 其实现 #ifdef notdef #define mdelay…

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

写在前面说的话 在这里&#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…

C# ini文件读写函数

namespace Tools {class IniOperate{[DllImport("kernel32")]private static extern int GetPrivateProfileString(string section, string key,

Visual studio内存泄露检查工具--BoundsChecker

BoundsChecker是一个Run-Time错误检测工具&#xff0c;它主要定位程序在运行时期发生的各种错误。 BoundsChecker能检测的错误包括&#xff1a; 1&#xff09;指针操作和内存、资源泄露错误&#xff0c;比如&#xff1a;内存泄露&#xff1b;资源泄露&#xff…

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

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

CST光源控制卡简单操作C#程序

namespace Machine {class LightCST{private SerialPort serialPort ;public LightCST(){serialPort = new SerialPort();}

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

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

bootcmd 和bootargs

看到这个标题&#xff0c;可能觉得这个并没有什么的&#xff0c;其实不然&#xff0c;编好了u-boot了&#xff0c;但是如何来使用确不是那么简单的&#xff0c;想当初我将uboot制作出来后以为全部都搞定了&#xff0c;屁颠屁颠的烧到板子上后可系统就是起不来&#xff0c;为什么…

名词解释(容器、并发,插件,脚本)及程序对象的创建和注释文档

一、专有名词 1‘  容器 创建一种对象类型&#xff0c;持有对其他对象的引用&#xff0c;被称为容器的新对象。在任何时候都可以扩充自己以容纳置于其中的所有东西。 java在其标准类库中包含了大量的容器。在某些类库中&#xff0c;一两个通用容器足以满足所有的需要&#xf…

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

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

C#模板匹配创建模板与查找模板函数

class ShapeModulInspect{/// <summary>/// /// </summary>/// <param name="InspectImg">图像</param>/// <param name="ModulRoi">ROI</param>/// <param name="AngleStart">起始角</param>/…

SuperMap iDesktop之导入数据

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

Ajax教程

AJAX AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法。 AJAX 是与服务器交换数据并更新部分网页的艺术&#xff0c;在不重新加载整个页面的情况下。 AJAX 是一种在…

dm365 resize

DM368支持视频的缩放功能&#xff0c;例如DM365可以编码一个720P的&#xff0c;同时可以以任意分辨率&#xff08;小于720P的分辨率&#xff09;输出。其中有两种模式&#xff1a;IMP_MODE_SINGLE_SHOT&#xff0c;IMP_MODE_CONTINUOUS. 在用dm365的时候&#xff0c;用resizer…

SSH

http://www.cnblogs.com/hoobey/p/5512924.html struts --- 控制器 hibernate 操作数据库 spring 解耦 Struts 、 spring 、 Hibernate 在各层的作用 1 &#xff09; struts 负责 web 层 . ActionFormBean 接收网页中表单提交的数据&#xff0c;然后通过 Action 进…