POJ3345】的更多相关文章

http://poj.org/problem?id=3345 大意: 大意是说现在有n个城市来给你投票,你需要至少拿到m个城市的赞成票.想要获得第i个城市的赞成需要花费w[i],有个条件就是某些城市是在其他某个城市的统治下的,当获得某个城市的赞成票后,那么他所统治的其他城市都会投票给你(不再需要花费),球最小花费 题解: 我们很容易看出这个统治关系组成了一个树的结构,就等于拿到i整个子树的所有节点的花费就是节点i的花费,求最后拿到>=m个节点的最小花费 我的状态也是按照题目要求设的,F[i]表示…
Bribing FIPA Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5910   Accepted: 1850 Description There is going to be a voting at FIPA (Fédération Internationale de Programmation Association) to determine the host of the next IPWC (Interna…
题目链接 POJ 题解 背包树形dp板题 就是读入有点无聊,浪费了很多青春 #include<iostream> #include<cstdio> #include<cmath> #include<map> #include<string> #include<cstring> #include<algorithm> #define LL long long int #define REP(i,n) for (int i =…
题意:有n个国家,贿赂它们都需要一定的代价,一个国家被贿赂了从属这个国家的国家也相当于被贿赂了,问贿赂至少k个国家的最少代价. 这些国家的从属关系形成一个森林,加个超级根连接,就是一棵树了,考虑用DP: dp[u][m]表示以u国家为根的子树贿赂m个国家的最少代价 单单这样的话转移是指数级的,其实这题就是树上背包,同HDU1516.现在觉得想明白了,其实就是所有结点为根做n次01背包,每次01背包的物品就是当前根的各个儿子. 状态加一维度表示,转移就可以不是指数级了: dp[u][n][m]表示…
Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5021   Accepted: 1574 Description There is going to be a voting at FIPA (Fédération Internationale de Programmation Association) to determine the host of the next IPWC (International Progra…
题目是说给一棵树,叶子结点有负权,边有正权,问最多能选多少个叶子结点,使从叶子到根的权值和小于等于0. 考虑数据规模表示出状态:dp[u][k]表示在u结点为根的子树中选择k个叶子结点的最小权值 最后就从d[1][k]中找满足的最大的k.不过单这样转移时间复杂度是指数级,显然这题就是用树上背包了. 不过其实这题时间复杂度不会算= =反正感觉挺靠谱,交了就AC了.. 又做了一道树上背包,HDU1561和POJ3345. #include<cstdio> #include<cstring&g…
1 推荐题库 •http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以baidu 一个叫NOCOW 的网站.   •http://livearchive.onlinejudge.org/ 上面有全部的赛区真题,绝大部分都可以提交,不适合当题库刷,不过在这里找题非常方便.   • http://poj.org/ 不解释了,中国最知名的oj,题量非常之大,历史也很悠久,推荐…
题目链接:  poj-3345  hdu-2415 题意 有n个国家,你要获取m个国家的支持,获取第i个国家的支持就要给cost[i]的价钱    其中有一些国家是老大和小弟的关系,也就是说,如果你获得了某个老大国家的支持,    那么这个国家的所有小弟(包括小弟的小弟...递归下去)都会无偿免费支持你.    问最少的花费可以得到m个国家的支持 思路 这题还是比较好想的树形dp, 不过输入有些麻烦, 一开始以为每组样例结束都是'#',结果一直    RE,后来发现最后一组才是 '#'...  …
1. 算法总结及推荐题目 1.1 C++ STL • STL容器: set, map, vector, priority_queue, queue, stack, deque, bitset• STL算法: sort, unique, nth_element, reverse, rotate, next_permution, find, for_each, count, lower_bound, max, swap, random_shuffle 1.2 基本算法 • 枚举: poj1753,…
树形DP1.简介:树是一种数据结构,因为树具有良好的子结构,而恰好DP是从最优子问题更新而来,那么在树上做DP操作就是从树的根节点开始深搜(也就是记忆化搜索),保存每一步的最优结果.tips:树的遍历有从叶子节点->根节点和从根节点->叶子绩点两种节点,个人习惯从根节点开始遍历2.树形DP的状态定义:一般来说,树形DP的状态定义根据实际情况来定义,比如 HDU1520的定义为dp[maxn][2]. 转移方程为:if(i来) dp[i][1]+=dp[j][0]//j是i的子节点 else d…