URAL1018. Binary Apple Tree
简单树形DP
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define INF 0xfffffff
int dp[][];
int n,q,ch[][];
int p[][];
int dfs(int pre,int u,int s)
{
int i;
if(dp[u][s]!=-)
return dp[u][s];
int o = ,cc[];
for(i = ; i <= n ; i++)
{
if(i==pre)
continue;
if(p[u][i])
{
o++;
cc[o] = i;
}
}
if(s==||o==)
return dp[u][s] = ;
if(o==&&s>)
return -INF;
if(o==)
{
dp[u][s] = p[u][cc[]]+dfs(u,cc[],s-);
return dp[u][s];
}
dp[u][s] = max(p[u][cc[]]+dfs(u,cc[],s-),p[u][cc[]]+dfs(u,cc[],s-));
for(i = ; i < s ; i++)
{
dp[u][s] = max(p[u][cc[]]+dfs(u,cc[],i-)+p[u][cc[]]+dfs(u,cc[],s-i-),dp[u][s]);
}
return dp[u][s];
}
int main()
{
int i,u,v,w;
memset(dp,-,sizeof(dp));
scanf("%d%d",&n,&q);
for(i = ; i < n ; i++)
{
scanf("%d%d%d",&u,&v,&w);
p[u][v] = w;
p[v][u] = w;
}
int ans = dfs(-,,q);
printf("%d\n",ans);
return ;
}
URAL1018. Binary Apple Tree的更多相关文章
- URAL1018 Binary Apple Tree(树形DP)
题目大概说一棵n结点二叉苹果树,n-1个分支,每个分支各有苹果,1是根,要删掉若干个分支,保留q个分支,问最多能保留几个苹果. 挺简单的树形DP,因为是二叉树,都不需要树上背包什么的. dp[u][k ...
- URAL1018 Binary Apple Tree(树dp)
组队赛的时候的一道题,那个时候想了一下感觉dp不怎么好写呀,现在写了出来,交上去过了,但是我觉得我还是应该WA的呀,因为总感觉dp的不对. #pragma warning(disable:4996) ...
- Ural-1018 Binary Apple Tree(树形dp+分组背包)
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #i ...
- CJOJ 1976 二叉苹果树 / URAL 1018 Binary Apple Tree(树型动态规划)
CJOJ 1976 二叉苹果树 / URAL 1018 Binary Apple Tree(树型动态规划) Description 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的 ...
- URAL 1018 Binary Apple Tree(树DP)
Let's imagine how apple tree looks in binary computer world. You're right, it looks just like a bina ...
- BNUOJ 13358 Binary Apple Tree
Binary Apple Tree Time Limit: 1000ms Memory Limit: 16384KB This problem will be judged on Ural. Orig ...
- timus 1018. Binary Apple Tree
1018. Binary Apple Tree Time limit: 1.0 secondMemory limit: 64 MB Let's imagine how apple tree looks ...
- 【URAL 1018】Binary Apple Tree
http://vjudge.net/problem/17662 loli蜜汁(面向高一)树形dp水题 #include<cstdio> #include<cstring> #i ...
- Ural 1018 Binary Apple Tree
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1018 Dynamic Programming. 首先要根据input建立树形结构,然后在 ...
随机推荐
- js个人笔记
一.删除元素 <!DOCTYPE html> <html> <head> <title>删除元素</title> </head> ...
- jquery动态插入行
这是一个利用jquery动态插入输入内容的代码. html代码: <div title="分表2" class="ui-edit" style=" ...
- 06_init()和destroy()方法
[工程截图] [HelloWorld.java] package com.HigginCui; public class HelloWorld { public HelloWorld(){ Syste ...
- 几个app maker的网站
简网APP工场:http://www.cutt.com/app 爱传iappk:http://www.iappk.com 安米网:http://www.appbyme.com/mobcentACA/i ...
- centos6.5 安装python2.7.5
1. 下载python2.7.5,保存到 /data/http://www.python.org/ftp/python/ 2. 解压文件tar xvf Python-2.7.5.tar.bz2 3. ...
- 支付宝api教程,支付宝根据交易号自动充值
最近公司要用php做一个网站支付宝自动充值的功能,具体就是客户把钱直接转到公司的支付宝账号里,然后在我们网站上填写上交易号,我们网站程序自动获取交易信息,自动给网站的账户充值. 我的具体想法就是利用支 ...
- mysql查询语句分析 explain用法
explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了,如: explai ...
- animation css3动画与CSS3 @keyframes担配使用创建往复平缓动画
通过 @keyframes 规则,您能够创建动画. 创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式. 在动画过程中,您能够多次改变这套 CSS 样式. 以百分比来规定改变发生的时间,或者通 ...
- switch...case 和 if...else
switch...case与if...else的根本区别在于: switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的,switc ...
- GPS坐标转百度地图并且加载地图示例.支持微信端访问
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Wx_VehicleLoca ...