当前位置:网站首页>树形DP AcWing 285. 没有上司的舞会
树形DP AcWing 285. 没有上司的舞会
2022-07-03 08:41:00 【T_Y_F666】
代码虚拟空间
函数内部空间存储在栈中 C++默认栈空间大小为4M 故开在函数内部容易暴栈
全局变量静态变量存储在堆中
树形DP AcWing 285. 没有上司的舞会
原题链接
算法标签
动态规划 树形DP
思路

状态计算

代码
#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>b;--i)
using namespace std;
const int N = 6005;
int a[N], e[N], h[N], ne[N], idx;
int f[N][2];
bool p[N];
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
void put(int x) {
if(x<0) putchar('-'),x=-x;
if(x>=10) put(x/10);
putchar(x%10^48);
}
void add(int a, int b){
e[idx]=b;
ne[idx]=h[a];
h[a]=idx++;
}
void dfs(int u){
f[u][1]=a[u];
for(int i=h[u]; i!=-1; i=ne[i]){
int j=e[i];
dfs(j);
f[u][1]+=f[j][0];
f[u][0]+=max(f[j][0], f[j][1]);
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n=read();
rep(i, 1, n+1){
a[i]=read();
}
memset(h, -1, sizeof h);
rep(i, 0, n-1){
int a=read(), b=read();
add(b, a);
p[a]=true;
}
int root=1;
// 查询根节点
while(p[root]){
root++;
}
dfs(root);
printf("%lld", max(f[root][0], f[root][1]));
return 0;
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- Unity editor expansion - window, sub window, menu, right-click menu (context menu)
- 【Rust笔记】05-错误处理
- Animation_ IK overview
- [rust note] 10 operator overloading
- Introduction to hexadecimal coding
- PHP function date (), y-m-d h:i:s in English case
- 【Rust 笔记】12-闭包
- [MySQL] MySQL Performance Optimization Practice: introduction of database lock and index search principle
- Mxone Pro adaptive 2.0 film and television template watermelon video theme apple cmsv10 template
- How to place the parameters of the controller in the view after encountering the input textarea tag in the TP framework
猜你喜欢

【Rust笔记】02-所有权

VIM learning notes from introduction to silk skating

Dom4j遍历和更新XML

Monotonic stack -84 The largest rectangle in the histogram
![[concurrent programming] thread foundation and sharing between threads](/img/26/60fbfe65b186867a3b1cb58d481226.jpg)
[concurrent programming] thread foundation and sharing between threads

Gradle's method of dynamically modifying APK package name

UE4 source code reading_ Bone model and animation system_ Animation compression

UE4 source code reading_ Mobile synchronization

Gif remove blank frame frame number adjustment

TP5 multi condition sorting
随机推荐
MySQL containerization (1) docker installation MySQL
Eating fruit
Monotonic stack -84 The largest rectangle in the histogram
Log4j2 vulnerability recurrence and analysis
[concurrent programming] atomic operation CAS
createjs easeljs
单调栈-503. 下一个更大元素 II
Explain sizeof, strlen, pointer, array and other combination questions in detail
Osgearth starry background
Try to reprint an article about CSDN reprint
Phpstudy 80 port occupied W10 system
22-06-27 Xian redis (01) commands for installing five common data types: redis and redis
OpenGL learning notes
DOM 渲染系统(render mount patch)响应式系统
[rust notes] 09- special types and generics
I made mistakes that junior programmers all over the world would make, and I also made mistakes that I shouldn't have made
Baidu editor ueeditor changes style
Advanced OSG collision detection
PHP mnemonic code full text 400 words to extract the first letter of each Chinese character
MySQL index types B-tree and hash