POJ2342 HDU1520 Anniversary party
来源:互联网 发布:c语言bmp转化为灰度图 编辑:程序博客网 时间:2024/05/16 17:50
又学到东西了,树形DP。
参考了网上的代码,使用的是孩子,兄弟,父节点的模式建树。
node[idx].present表示的是第idx个节点参加的时候的最优,node[idx].not_present表示的是第idx个节点不参加的时候的最优。
/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-04-26 19:22 # Filename: POJ2342 HDU1520 Anniversary party.cpp # Description : ******************************************************************************/#ifdef _MSC_VER#define DEBUG#define _CRT_SECURE_NO_DEPRECATE#endif#include <fstream>#include <stdio.h>#include <iostream>#include <string.h>#include <string>#include <limits.h>#include <algorithm>#include <math.h>#include <numeric>#include <functional>#include <ctype.h>#define MAX 100010using namespace std;struct NODE{int child,father,brother,present,not_present;int max(){return present>not_present?present:not_present;}void init(){child=father=brother=not_present=0;}}node[MAX];void dfs(const int &idx){int child=node[idx].child;while(child){dfs(child);node[idx].present+=node[child].not_present;//第idx个参加,则孩子节点不能参加node[idx].not_present+=node[child].max(); //第idx个不参加,则孩子节点可参加可不参加child=node[child].brother;}}int main(void){#ifdef DEBUG freopen("../stdin.txt","r",stdin); freopen("../stdout.txt","w",stdout); #endif int n; while(~scanf("%d",&n) && n) {for(int i=1;i<=n;++i){scanf("%d",&node[i].present);node[i].init();}int k,l;while(scanf("%d%d",&l,&k) && k+l){node[l].father=k;node[l].brother=node[k].child;node[k].child=l;}for(int i=1;i<=n;++i)if(!node[i].father){dfs(i);printf("%d\n",node[i].max());break;} } return 0;}
- POJ2342 HDU1520 Anniversary party
- hdu1520 Anniversary party(poj2342,树形dp)
- [树形dp][入门]hdu1520 & poj2342 Anniversary party
- poj2342--hdu1520-- Anniversary party(树形DP练习1)
- poj2342 Anniversary party
- poj2342 Anniversary party
- POJ2342 Anniversary party
- poj2342 Anniversary party 题解
- 【poj2342】Anniversary party
- poj2342 Anniversary party
- 【poj2342】 Anniversary party
- TreeDp POJ2342 Anniversary party
- HDU1520 Anniversary party
- hdu1520:Anniversary party
- 【HDU1520】【Anniversary party】
- hdu1520 Anniversary party
- hdu1520 Anniversary party(treeDp)
- HDU1520-Anniversary party
- 关于全局变量分配内存的误解
- wxwindows qt
- win7下jdk安装环境变量配置
- 求关系模式中的候选键(软考,数据库)
- 基于Linux守护进程的分析与实现
- POJ2342 HDU1520 Anniversary party
- 我的PHPFrame
- .net 代码混淆原理性实践
- 改变 Android EditText 的边框
- ubuntu下hadoop单机伪分布式系统配置
- gdb常用用法
- 多串口卡
- 修改sublime Text 的默认配置文件位置
- 量词