【树形dp】vijos1144小胖守皇宫

细节很精妙

描述

huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫。

皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状;某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。

可是xuzhenyi手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。

帮助xuzhenyi布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。

格式

输入格式

输入文件中数据表示一棵树,描述如下:

第1行 n,表示树中结点的数目。

第2行至第n+1n+1行,每行描述每个宫殿结点信息,依次为:该宫殿结点标号i(0<i \le n0<i≤n),在该宫殿安置侍卫所需的经费k,该点的儿子数m,接下来m个数,分别是这个节点的m个儿子的标号r_1, r_2, \cdots, r_mr1​,r2​,⋯,rm​。

对于一个n(0 < n \le 15000<n≤1500)个结点的树,结点标号在1到n之间,且标号不重复。保证经费总和不超过2^31-1231−1。

输出格式

输出文件仅包含一个数,为所求的最少的经费。

题目分析

有些细节处理真的是非常精妙。

分析详见初涉树形dp【权最小点覆盖】vijos1144皇宫看守

 1 #include<bits/stdc++.h>
 2 const int maxn = 2003;
 3 
 4 int f[maxn][3],a[maxn],n,rt;
 5 int head[maxn],nxt[maxn<<1],edges[maxn<<1],edgeTot;
 6 bool vis[maxn];
 7 
 8 int read()
 9 {
10     char ch = getchar();
11     int num = 0;
12     bool fl = 0;
13     for (; !isdigit(ch); ch = getchar())
14         if (ch=='-') fl = 1;
15     for (; isdigit(ch); ch = getchar())
16         num = (num<<1)+(num<<3)+ch-48;
17     if (fl) num = -num;
18     return num;
19 }
20 inline int min(int a, int b){return a<b?a:b;}
21 inline int min(int a, int b, int c){int t=min(a,b);return t<c?t:c;}
22 void addedge(int u, int v)
23 {
24     edges[++edgeTot] = v, nxt[edgeTot] = head[u], head[u] = edgeTot;
25     vis[v] = 1;
26 }
27 void dfs(int now)
28 {
29     int delta = 2e9;
30     for (int i=head[now]; i!=-1; i=nxt[i])
31     {
32         int v = edges[i];
33         dfs(v);
34         f[now][0] += min(f[v][1], f[v][2]);
35         f[now][1] += min(f[v][1], f[v][2]);
36         delta = min(f[v][2]-f[v][1], delta);
37         f[now][2] += min(f[v][0], f[v][1], f[v][2]);
38     }
39     delta = std::max(delta, 0);
40     f[now][1] += delta;
41 }
42 int main()
43 {
44     memset(head, -1, sizeof head);
45     n = read();
46     for (int i=1; i<=n; i++)
47     {
48         int p = read(), k;
49         f[p][2] = a[p] = read(), k = read();
50         while (k--) addedge(p, read());
51     }
52     rt = 1;
53     while (vis[rt]) rt++;
54     dfs(rt);
55     printf("%d\n",min(f[rt][1], f[rt][2]));
56     return 0;
57 }

 

 

 

END

转载于:https://www.cnblogs.com/antiquality/p/9246654.html

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

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

相关文章

手机号码归属地及运营商查询

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class NewMobile {public stati…

redhat6.5手动配置网络

2、手动设置ip地址如果虚拟机不能自动获取IP&#xff0c;只能手动配置&#xff0c;配置方法如下&#xff1a;输入命令#vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件]输入上述命令后回车&#xff0c;打开配置文件&#xff0c;使用方向键移动光标到最后一行…

学成在线--20.新增课程(最后完善)

文章目录一.效果展示二.服务端1.Api接口2.Dao3.Service4.Controller三.前端1.页面完善1&#xff09;创建course_add.vue页面2&#xff09;course_add.vue页面路由3&#xff09;course_list.vue中添加链接2.查询数据字典1&#xff09;视图中代码2&#xff09;定义Api方法3&#…

http协议工作流程

用户单机鼠标后所发生的事件过程如下&#xff1a; &#xff08;1&#xff09;浏览器分析链接所指向页面的URL。 &#xff08;2&#xff09;浏览器向DNS服务器请求解析URL的IP地址。 &#xff08;3&#xff09;域名系统DNS解析出URL对应的IP地址。 &#xff08;4&#xff09…

html里面表格问题

表格问题汇总&#xff1a; 现代网站中表格的用武之地已经很少了&#xff0c;但是一些框架&#xff0c;如bootstorp还是会用到的&#xff0c;所以还是需要了解掌握。本随笔只涉及开发过程中遇到的表格问题&#xff0c;不做其他拓展。 1、caption代表的是表格元素的标题。至于标题…

利用Underscore求数组的交集、并集和差集

1 数组交集函数——intersection 数组的交集是指包含多个数组中的共同元素的一个数组&#xff0c;求数组的交集就是找出给定数组中的共有元素。 下面实现一个求两个数组交集的函数。 判断数组是够包含指定值&#xff0c;使用Array.indexOf就可以。所以我们可以遍历第一个参数数…

RT-Thread简介

RT-Thread简介 RT-Thread是一款完全由国内团队开发维护的嵌入式实时操作系统&#xff08;RTOS&#xff09;&#xff0c;具有完全的自主知识产权。 经过16个年头的沉淀&#xff0c;伴随着物联网的兴起&#xff0c;它正演变成一个功能强大、组件丰富的物联网操作系统。 RT-Thre…

调用第三方API ,实现手机号码归属地及运营商查询

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 运行结果&#xff1a; 中国电信 西双版纳 西双版纳,中国电信 代码&#xff1a; import java.io.BufferedReader; import java.io.I…

学成在线--21.课程信息修改

文章目录一.需求分析二.课程管理导航页面1.定义course_manage.vue为课程管理页面2.创建各个信息管理页面3.创建路由三.服务端1.Api接口1&#xff09;根据课程ID查询课程信息2&#xff09;修改课程信息2.Dao3.Service4.Controller四.前端1. 完成course_baseinfo.vue页面2.API方法…

HTTP协议特点

&#xff08;一&#xff09;HTTP协议是无状态的。也就是说&#xff0c;同一个客户第二次访问同一个服务器上的页面时&#xff0c;服务器的响应与第一次被访问时相同。服务器不记得访问过得这个用户&#xff0c;也不记得为这个客户服务过多少次。 &#xff08;二&#xff09;HT…

C#曲线分析平台的制作(四,highcharts+ajax加载后台数据)

在上一篇博客&#xff1a;C#曲线分析平台的制作&#xff08;三&#xff0c;三层构架echarts显示&#xff09;中已经完成了后台的三层构架的简单搭建&#xff0c;为实现后面的拓展应用开发和review 改写提供了方便。而在曲线分析平台中&#xff0c;往往有要求时间轴联动功能&…

国际C语言混乱代码大赛结果公布

国际C语言混乱代码大赛&#xff08;IOCCC, The International Obfuscated C Code Contest&#xff09;是一项国际编程赛事&#xff0c;从1984年开始&#xff0c;每年举办一次&#xff08;1997年、1999年、2002年、2003年和2006年例外&#xff09;。目的是写出最有创意的最让人难…

JDBC连接数据库(一)

原文地址http://www.cnblogs.com/hongten/archive/2011/03/29/1998311.html JDBC连接数据库 创建一个以JDBC连接数据库的程序&#xff0c;包含7个步骤&#xff1a; 1、加载JDBC驱动程序&#xff1a; 在连接数据库之前&#xff0c;首先要加载想要连接的数据库的驱动到JVM…

eclipse加速之禁用 JS、jsp 等文件的语法验证

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 去除eclipse的JS验证&#xff1a; 将windows->preference->Java Script->Validator->Errors/Warnings-> Enable Javascr…

学成在线--22.课程营销

文章目录一.需求分析二.数据模型三.服务端1.Api接口1&#xff09;查询课程营销信息2&#xff09;更新课程营销信息2.Dao3.Service4.Controller四.前端1.Api 方法2.编写 course_marketinfo.vue1&#xff09;template2&#xff09;数据对象3&#xff09;保存方法4&#xff09;在m…

电子邮件系统

&#xff08;一&#xff09;电子邮件系统的构成 1.用户代理 用户与电子邮件系统的接口&#xff0c;用户代理使用户能够通过一个很友好的接口来发送和接收邮件&#xff0c;用户代理就是一个运行在PC上的程序。 2 邮件服务器 邮件服务器的功能是发送和接收邮件&#xff0c;同…

面向对象的接口类 以及鸭子类型

1.接口类,抽象类. 2.鸭子类型(Python多态)(Python三大特性之一)Python封装 1.接口类和抽象类只是在工作中书写的一种规范. class QQ: def pay(self,money): print("使用QQ支付%s"%money) class Ali: def pay(self,money): print("使用支付宝支付%s"%money…

mysql查看binlog日志内容

2019独角兽企业重金招聘Python工程师标准>>> &#xff08;一&#xff09; binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变&#xff0c;并以二进制的形式保存在磁盘中&#xff1b; 它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制&…

架构师:我们需要顶层设计

架构师&#xff1a;我们需要顶层设计背景&#xff1a; 某公司&#xff0c;建立的程序又被推倒&#xff0c;外人觉得很奇怪&#xff0c;这个程序的主管非常敬业&#xff0c;关注到了程序每一个细节&#xff0c;甚至包括每一个按钮的文字和位置。这个主管很委屈&#xff0c;他说…

文件传输协议FTP

文件传输协议FTP提供交互式的访问&#xff0c;允许客户指明文件的类型和格式&#xff0c;并允许文件具有存取权限。它屏蔽了个计算机系统的细节&#xff0c;因而适合于在异构网络中任意计算机之间传输文件。它提供不同种类主机系统之间的文件传输能力&#xff0c;可以提供用户对…