首页 > 其他分享 >#C. 「一本通 5.2 例 5」皇宫看守(树的最有独立集)

#C. 「一本通 5.2 例 5」皇宫看守(树的最有独立集)

时间:2024-03-30 12:04:23浏览次数:16  
标签:10005 5.2 min int 宫殿 看守 结点 tot 皇宫

  • 传统题  1000ms  512MiB
  • 说明

    太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状,某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。 可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。 帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。

    输入格式

    输入中数据描述一棵树,描述如下: 第一行 n,表示树中结点的数目。 第二行至第 n+1 行,每行描述每个宫殿结点信息,依次为:该宫殿结点标号 i(0<i≤n),在该宫殿安置侍卫所需的经费 k,该边的儿子数 m,接下来 m个数,分别是这个节点的 m个儿子的标号r_{1}​,r_{2}​,⋯,r_{m}

    对于一个 n 个结点的树,结点标号在 1到 n 之间,且标号不重复。

    输出格式

    输出最少的经费

    样例

    输入数据 1

    6
    1 30 3 2 3 4
    2 16 2 5 6
    3 5 0
    4 4 0
    5 11 0
    6 5 0

    输出数据 1

    25

    提示


    数据范围:对于 100%的数据,0<n≤1500。
  • #include<bits/stdc++.h>
    using namespace std;
    int f[10005][3],v[10005],wc[10005],n,k,l;
    int in[10005],head[10005],to[10005],ne[10005],tot;
    void add(int u, int v)
    {
    	++tot;
        to[tot]=v; 
        ne[tot]=head[u];
        head[u]=tot;
    }
    void dfs(int u,int fa)
    {
    	int d=0x3f3f3f3f;
    	for(int i=head[u];i;i=ne[i])
    	{
    		int v=to[i];
    		if(v==fa) continue;
    		dfs(v,u);
    		f[u][0]+=min(f[v][2],f[v][1]);
    		f[u][1]+=min(f[v][2],f[v][1]);
    		d=min(d,f[v][2]-min(f[v][2],f[v][1]));
    		f[u][2]+=min(f[v][2],min(f[v][1],f[v][0]));
    	}
    	f[u][1]+=d;
    	f[u][2]+=wc[u];
    }
    int main(){
    	scanf("%d",&n);
    	int a,b,c;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a;cin>>wc[a]>>b;
    		for(int j=1;j<=b;j++)
    		{
    			scanf("%d",&c);
    			add(a,c);in[c]=1;
    		}
    	}
    	int root=1;
    	while(in[root])root++;
    	dfs(root,0);
    	cout<<min(f[root][2],f[root][1]);
    	return 0;
    }

标签:10005,5.2,min,int,宫殿,看守,结点,tot,皇宫
From: https://blog.csdn.net/a13990636586/article/details/137168276

相关文章

  • Xilinx ZYNQ 7000+Vivado2015.2系列(十五)AXI Timer 用户定时器中断控制LED
    前面的中断学习中我们学了按键,GPIO,Timer,是时候把它们整合到一起了。今天我们混合使用PS/PL部分的资源,建立一个比较大的系统。板子:zc702。实现功能如下:1.通过串口打印信息询问你要按SW5还是SW7;2.当正确的按键被按下,定时器启动,关闭ledDS23;3.当定时器溢出后触发中断,开启DS23,......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(十四)按键中断控制LED亮灭
    前面我们介绍了按键中断,其实我们稍作修改就可以用按键控制LED了。做个小实验,两个按键分别控制两个led亮灭。板子:zc702。硬件部分添加zynq核:勾选串口用于打印信息,勾选EMIO,我们控制两个led,所以需要2bitPL到PS的中断勾选上:PL时钟什么的都用不到,我们用的按键不需要时钟,EMIO......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(十三)私有定时器中断
    私有定时器属于PS部分,定时器可以帮我们计数、计时,有效的控制模块的时序。这一次实验我们认识定时器并使用定时器产生中断。CPU的私有中断(PPI)CPU的私有中断(PPI),5个:全局定时器,私有看门狗定时器,私有定时器以及来自PL的FIQ/IRQ。它们的触发类型都是固定不变的,并且来自P......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(九)基于AXI总线的等精度频率计(测量数字信号频率)
    上一节我们体验了一把PS和PL是怎样联合开发的,这种ARM和FPGA联合设计是ZYNQ的精华所在。这一节我们实现一个稍微复杂一点的功能——测量未知信号的频率,PS和PL通过AXI总线交互数据,实现我们希望的功能。如何测量数字信号的频率最简单的办法——在一段时间内计数在我们设定的......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(十)MIO/EMIO再识,MIO的引脚“复用”,EMIO当作PS的接口
    前面我们介绍过EMIO,但是不详细。MIO是PS的IO接口,这个M代表的是Multiuse,也就是多用途,在下图中我们可以看到54个MIO连接这么多东西,必须得复用,所以当我们开发的时候需要的功能配置上,不需要的去掉,防止IO口被占用。板子用的是zc702。下面我们双击ZYNQ核:我们到MIO的配置里,把其......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(八)ARM+FPGA的优势,PS控制PL产生需要的PWM波(基于AXI
    上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序,这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势,PS可以控制PL产生定制化的行为,而不需要去动硬件代码。这次实验是产生频率和占空比可调的PWM(PulseWidthModulation)信号,调用8次,产生8路PWM......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(七)软硬件联合Debug观察AXI总线读、写时各信号的时
    前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。具体做法是创建一个基于AXI总线的加法器模块,在......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(六)创建一个基于AXI总线的GPIO IP并使用
    前言:FPGA+ARM是ZYNQ的特点,那么PL部分怎么和ARM通信呢,依靠的就是AXI总线。这个实验是创建一个基于AXI总线的GPIOIP,利用PL的资源来扩充GPIO资源。通过这个实验迅速入门开发基于总线的系统。使用的板子是zc702。AXI总线初识:AXI(AdvancedeXtensibleInterface),由ARM公司提出的......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(五)之ZYNQ的三种启动方式-JTAG、SD card、Flash
    前言:前面我们都是使用JTAG方式下载比特流文件,然后下载elf文件,最后点击Runas或者Debugas来运行程序。JTAG方式是通过tcl脚本来初始化PS,然后用JTAG收发信息,优点是可以在线调试,缺点是断电后程序就丢失了。为了解决程序丢失的问题,可以制作镜像文件烧写到sd卡或者flash中,上电即......
  • Xilinx ZYNQ 7000+Vivado2015.2系列(四)之GPIO的三种方式:MIO、EMIO、AXI_GPIO
    前言:ZYNQ7000有三种GPIO:MIO,EMIO,AXI_GPIOMIO是固定管脚的,属于PS,使用时不消耗PL资源;EMIO通过PL扩展,使用时需要分配管脚,使用时消耗PL管脚资源;AXI_GPIO是封装好的IP核,PS通过M_AXI_GPIO接口控制PL部分实现IO,使用时消耗管脚资源和逻辑资源。使用的板子是zc702。1.MIO方式Zynq7000......