博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[poj2342]Anniversary party树形dp入门
阅读量:5008 次
发布时间:2019-06-12

本文共 913 字,大约阅读时间需要 3 分钟。

题意:选出不含直接上下司关系的最大价值。

解题关键:树形dp入门题,注意怎么找出根节点,运用了并查集的思想。

转移方程:dp[i][1]+=dp[j][0];/i是j的子树

     dp[i][0]+=max(dp[j][0],dp[j][1]);

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 typedef long long ll;10 const int maxn=7000;11 vector
G[maxn];12 int father[maxn];13 int dp[6005][2];14 void dfs(int u,int fa){15 int s=(int)G[u].size();16 for(int i=0;i
>n){27 memset(father, -1, sizeof father);28 int a,b;29 for(int i=1;i<=n;i++){30 cin>>dp[i][1];31 }32 int root=1;33 for(int i=0;i
>a>>b;35 G[b].push_back(a);36 father[a]=b;37 root=b;38 }39 cin>>a>>b;40 while(father[root]!=-1) root=father[root];41 dfs(root,0);42 int ans=max(dp[root][0],dp[root][1]);43 cout<
<<"\n";44 }45 return 0;46 }

 

转载于:https://www.cnblogs.com/elpsycongroo/p/7413644.html

你可能感兴趣的文章
UI:基础
查看>>
浅谈 @RequestParam 和@PathVariable
查看>>
设计模式之---装饰器设计模式
查看>>
基于WordNet的英文同义词、近义词相似度评估及代码实现
查看>>
Equation漏洞混淆利用分析总结(上)
查看>>
shell学习1shell简介
查看>>
Qt 【无法打开 xxxx头文件】
查看>>
JAVA项目将 Oracle 转 MySQL 数据库转换(Hibernate 持久层)
查看>>
三层架构(我的理解及详细分析)
查看>>
Django模板语言相关内容
查看>>
前端开发工程师如何在2013年里提升自己【转】--2016已更新升级很多何去何从?...
查看>>
markdown语法测试集合
查看>>
running and coding
查看>>
实现QQ第三方登录、网站接入
查看>>
HTML CSS 层叠样式表 三
查看>>
Qt pro pri 文件学习1
查看>>
软件工程概论第六周学习进度条
查看>>
[思路]导入导出功能
查看>>
【iOS】UICollectionView自己定义Layout之蜂窝布局
查看>>
golang——(strings包)常用字符串操作函数
查看>>