当前位置:网站首页>树形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 - the design idea of imgui
- TP5 multi condition sorting
- Unity editor expansion - the framework and context of unity imgui
- Unity Editor Extension - event handling
- Analysis of Alibaba canal principle
- Unity editor expansion - window, sub window, menu, right-click menu (context menu)
- Dom4j traverses and updates XML
- Life cycle of Servlet
- Unity notes 1
- Unity editor expansion - controls, layouts
猜你喜欢

Unity learning notes

Alibaba canaladmin deployment and canal cluster Ha Construction

Phpstudy 80 port occupied W10 system

Deeply understand the underlying data structure of MySQL index

Chocolate installation

Markdown learning

单调栈-42. 接雨水

Graphics_ Games101/202 learning notes

Message queue for interprocess communication

Unity interactive water ripple post-treatment
随机推荐
On the difference and connection between find and select in TP5 framework
Sending and receiving of request parameters
【Rust笔记】06-包和模块
数据库原理期末复习
Concurrent programming (III) detailed explanation of synchronized keyword
Osgconv tool usage
Monotonic stack -503 Next bigger Element II
MySQL containerization (1) docker installation MySQL
VIM learning notes from introduction to silk skating
Collection interface
PHP mnemonic code full text 400 words to extract the first letter of each Chinese character
【Rust 笔记】09-特型与泛型
I made mistakes that junior programmers all over the world would make, and I also made mistakes that I shouldn't have made
100 GIS practical application cases (78) - Multi compliance database design and data warehousing
Pit & ADB wireless debugging of vivo real machine debugging
Unity multi open script
PHP function date (), y-m-d h:i:s in English case
【Rust 笔记】13-迭代器(上)
Cloudcompare learning (1) - cloudcompare compilation and common plug-in implementation
Explain sizeof, strlen, pointer, array and other combination questions in detail