首页 > 其他分享 >树形dp模板

树形dp模板

时间:2024-11-22 20:42:15浏览次数:1  
标签:int 树形 back dfs 16001 dp mx 模板

入门题目:

最大子树和女仆咖啡厅桌游吧

#include<bits/stdc++.h>
using namespace std;

int f[16001];int cnt[16001];int a[16001];
vector<int>e[16001];int n;int mx=-10000000;
void dfs(int n,int fa)
{
	f[n]=a[n];
	for(int i=0;i<e[n].size();i++)
	{
		if(e[n][i]!=fa)
		{
			dfs(e[n][i],n);
			if(f[e[n][i]]>0)
				f[n]+=f[e[n][i]];
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=1;i<n;i++)
	{
		int x,y;
		cin>>x>>y;
		e[x].push_back(y);
		e[y].push_back(x);
	}
	dfs(1,0);
	for(int i=1;i<=n;i++)
	{
		if(f[i]>mx)mx=f[i];
	}
	cout<<mx<<endl;
}

简单的dfs遍历,相当于线性dp中的1~n
dp方程设计在dfs的for循环中

标签:int,树形,back,dfs,16001,dp,mx,模板
From: https://www.cnblogs.com/Arc-ux/p/18563701

相关文章

  • 微信小程序毕业设计论文范文_小程序开发毕业论文模板本科计算机毕业论文范文
    文章目录前言微信小程序毕业设计论文范文论文目录论文绪论论文系统设计论文总体设计论文数据设计论文致谢为什么选择我更多毕设系统作品演示视频可看这里数据库+源码获取微信小程序毕业设计选题和毕业论文怎么写,答辩流程是怎样的?今天就给大家介绍下小程序开发......
  • 设计模式之 模板方法模式
    模板方法模式是行为型设计模式的一种。它定义了一个算法的骨架,并将某些步骤的实现延迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些特定步骤。模板方法模式的核心在于:封装算法的骨架:通过父类中的模板方法定义算法的执行顺序和框架,保证算法结构......
  • TCP和UDP
    TCP简介TCP的连接机制是面向连接,TCP通过三次握手机制完成连接,三次握手机制,三次握手保证双方确认准备好发送数据和接收数据,并且能够确保按顺序准确无误的发送数据。TCP非常可靠,它能够确保传输数据时丢失的数据能够重新发送,若发送方发出数据后没有在规定时间内收到确认,发送方将......
  • wordpress二开-WordPress新增页面模板-说说微语
    微语说说相当于一个简单的记事本,使用还是比较方便的。这个版本的说说微语CSS样式不兼容,可能有些主题无法适配,但是后台添加内容,前端显示的逻辑已经实现。可以当作Wordpress二开中自定义页面模板学习~一、后台添加说说微语模块首先我们把以下代码,添加到主题根目录中的funct......
  • 实验四 类的组合、继承、模板类、标准库
    实验任务1:task1-1.cpp和task1-2.cpp以及task1-3.cpp的源码,运行测试结果如下#include<iostream>usingstd::cout;usingstd::endl;//类A的定义classA{public:A(intx0,inty0);voiddisplay()const;private:intx,y;};A::A(intx0,inty0):......
  • 模板集
    前言:洛谷、博客园、CSDN同步更新博客园可能食用更佳Part0缺省源&卡常Part0.1火车头#pragmaGCCoptimize(3)#pragmaGCCtarget("avx")#pragmaGCCoptimize("Ofast")#pragmaGCCoptimize("inline")#pragmaGCCoptimize("-fgcse")#pragma......
  • 实验4 类的组合、继承、模板类、标准库
    1.实验任务1task1_1.cpp1#include<iostream>2usingnamespacestd;34classA{5public:6A(intx0,inty0);7voiddisplay()const;8private:9intx,y;10};11A::A(intx0,inty0):x{x0},y{y0}{}12voidA::display()con......
  • 【模板】可并堆 之 左偏树
    **P3377【模版】左偏树/可并堆**#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;intn,m;structHeap{ intls,rs; intdist,val,fa;}tr[N];intfifa(intx){ returntr[x].fa==x?x:tr[x].fa=fifa(tr[x].fa);}intmerge(int......
  • 【模板】朱刘算法
    【模板】朱刘算法#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+2;introot,n,m;structEdge{ intu,v,w;}e[N];intid[N],vis[N],pre[N],incost[N];voidzhuliu(){ inttn=0; intres=0; while(1) { tn=0; for(inti=1;i<=n;i++){......
  • 模板
    数据结构线段树2voidbuild(intp,intl,intr){ l(p)=l,r(p)=r; if(l==r)return; intmid=l+r>>1; build(ls(p)=p<<1,l,mid),build(rs(p)=p<<1|1,mid+1,r);}voidpushdown(intp){ sum(ls(p))=(sum(ls(p))*mul(p)+add(p......