HDU 4044 GeoDefense】的更多相关文章

GeoDefense Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 745    Accepted Submission(s): 307 Problem Description Tower defense is a kind of real-time strategy computer games. The goal of towe…
题目链接:hdu-4044 题意 这是一个塔防游戏,地图是一个n个编号为1-n的节点的树, 节点1是敌人的基地,其他叶子节点都是你的基地.    敌人的基地会源源不断地出来怪兽,为了防止敌人攻进你的基地,你可以选择造塔.    每个节点最多只能造一个塔,且节点i可以有ki种塔供你选择,价钱和攻击力分别为price_i, power_i    攻击力power_i,效果是让敌人经过这个节点时让敌人的血减少power_i点. 那么从敌人的基地到你的任意一个基地的路径,这条路径上的所有塔的攻击力之和,…
树形DP,和背包差不多.dp[now][x]表示now这个节点的子树上,花费为x的时候,获得的最大防御能力(保证敌方HP<=0) #include<cstdio> #include<cstring> #include<queue> #include<algorithm> using namespace std; + ; int T, n, m; vector<int>tree[maxn]; struct kind { int price;…
题意: 给一棵n个节点的树,点1为敌方基地,叶子结点都为我方阵地.我们可以在每个结点安放炸弹,每点至多放一个,每个结点有ki种炸弹可选,且每种炸弹有一个花费和一个攻击力(1点攻击力使敌人掉1点hp).敌人的目的是我方阵地,任意路线都有可能,但规定只能往下跑.问当有m钱时,最坏情况下最多能打掉敌人多少hp?(n<1001, m<201, ki>=0) 思路: 我竟然自己写出来了,咔咔~证明此题不难! 注意:某些点可能没有炸弹可选(即不能放炸弹):有0花费的炸弹:最坏情况下指的是敌人总是跑攻…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4044 题目大意:给定n个节点组成的树,1为敌方基地,叶子结点为我方结点.我们可以在每个结点安放炮台,至多一炮,然后就可以打炮,每个结点有ki种炮,每种炮有一个花费和一个能量(能量对应着打掉敌人多少hp).敌人可能往一个结点的每条分支跑,所以要想保证守住阵地,就要保证每个分支都要安放炮台.最后问怎么打炮,才能使打掉的敌人hp最多. 参考链接:http://blog.csdn.net/woshi250h…
专题训练 #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> using namespace std; ; const int INF=0x3fffffff; struct Node { int to; int next; }edge[MAXN*]; int tol; int head[MAXN]; ]; ]; ]; void init() { memset(…
树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树.三叉树.静态搜索树.AVL树,线段树.SPLAY树,后缀树等等.. 枚举那么多种数据结构只是想说树方面的内容相当多,本专辑只针对在树上的动态规划,即树形DP.做树形DP一般步骤是先将树转换为有根树,然后在树上进行深搜操作,从子节点或子树中返回信息层层往上更新至根节点.这里面的关键就是返回的信息部分,这个也没一般性的东西可讲…
转载自 http://blog.csdn.net/woshi250hua/article/details/7644959#t2 题单:http://vjudge.net/contest/123963#overview 树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树都出现了,二叉树.三叉树.静态搜索树.AVL树,线段树.SPLAY树,后缀树等等.. 枚举那么多种数据结构只是想说树方面的内…
HDU 4044 Geodefense http://blog.csdn.net/zmx354/article/details/25109897 树形DP暂且先告一段落了. HDU 3586 Information Disturbing dp[ s ][ k ]表示在s节点处.上限为k时的最小花费. dp[ s ][ k ] += min(dp[son][ j ]) j∈[1,k]. 直接枚举则 时间复杂度为 n*m*m. 可是对于 min(dp[son][ j ]) j∈[1,k],能够递推获…
CF#196B http://codeforces.com/contest/338/problem/B 题意:在一颗树上,给m个点,求到所有m个点距离不超过d的点的个数,所有路径长度为1. 分析:问题转化,就是求一个点是否到离它最远的给定点的距离小于d, 先第一遍dfs1求出以当前节点u为根的子树到子树中离它最远的给定点的距离d1[u],和次远的距离d2[u], 并且记录下最远距离是从哪个son转移过来的,fo[u]: 第二遍dfs2求出当前节点从它fa出发能碰到给定点的最远距离up[u],那么…