UVa 12186 Another Crisis (DP)】的更多相关文章

题意:有一个老板和n个员工,除了老板每个员工都有唯一的上司,老板编号为0,员工们为1-n,工人(没有下属的员工),要交一份请愿书, 但是不能跨级,当一个不是工人的员工接受到直系下属不少于T%的签字时,自己也会签字,并交给上级,问你最少有多少工人签字,才能让老板收到请愿书. 析:题意比较简单,也好理解,很明显是一个动态规划的题目,d(u)表示u给上级要发信至少需要多少工人签字.假设u有k个结点,那么至少要 c = (kT-1)/100 + 1个工人,然后把每个结点排序,找出最少的工人即可,挺简单的…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3338 题意: 某公司里有一个老板和n(n≤1e5)个员工组成树状结构,除了老板之外每个员工都有唯一的直属上司.老板的编号为0,员工编号为1-n.工人们(即没有直接下属的员工)打算签署一项请愿书递给老板,但是不能跨级递,只能递给直属上司.当一个中级员工(不是工人的员工)的直属下属中不…
思路:dp[i]表示让上司i签字至少需要多少工人签字.       转移方程:将i的所有节点根据所需工人数量升序排序,设i需要k个下属签字,dp[i] = sum{dp[v]| 0 <= v <k} AC代码: #include<cstdio> #include<algorithm> #include<cstring> #include<utility> #include<string> #include<iostream>…
uva 116 Unidirectional TSP Background Problems that require minimum paths through some domain appear in many different areas of computer science. For example, one of the constraints in VLSI routing problems is minimizing wire length. The Traveling Sa…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4513 题意: 有高为1, 2, 3,…, n的杆子各一根排成一行.从左边能看到L根,从右边能看到R根,求有多少种可能. 分析: 设d(i,j,k)表示让高度为1-i的杆子排成一行,从左边能看到j根,从右边能看到k根的方案数(设i≥2).按照从大到小的顺序安排各个杆子.假设已经安排完…
题意:有n个长度为1到n的柱子排列在一起,从左边看有l根从右边看有r根,问你所以排列中满足这种情况的方案数 题解:就是一个dp问题,关键是下标放什么,值代表什么 使用三维dp,dp[i][j][k]=l; i:从左边看的个数,j:从右边看的个数,k:后k根柱子,l:方案数 可以这样想:每次加上去的是比当前最小柱子小一的柱子,这样就可以发现,这根柱子放在k个位置都很好判断 即:dp[i][j][k]=dp[i-1][j][k-1](放在最左边)+dp[i][j-1][k-1](放在最右边)+dp[…
UVA 674  Coin Change  解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730#problem/E 题目: Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make changes with these coins for a given amount o…
本文出自   http://blog.csdn.net/shuangde800 题目链接: 点击打开链接 题意 有n个仓库,让m个人来看管.一个仓库只能由一个人来看管,一个人可以看管多个仓库. 每个人有一个能力值pi,如果他看管k个仓库,那么所看管的每个仓库的安全值为 pi/k(向下取整) 如果某个仓库没有人看管,那么它的安全值为0.所有仓库的安全值L = min{ 每个仓库的安全值 } 如果雇佣一个人的工资等于他的能力值pi. 从m个人中选择一些人雇佣,问所有仓库的安全值最高是多少,在安全值最…
Ingenuous Cubrency 又是dp问题,我又想了2 30分钟,一点思路也没有,最后又是看的题解,哎,为什么我做dp的题这么烂啊! [题目链接]Ingenuous Cubrency [题目类型]dp &题意: 21种硬币,第i种的价值是i* i* i,给出一个数额,问有几种方法能组成这个数额. 比如这个数额是21,那么输出3,有3种方法: 1:21个1 2:1个8,13个1 3:2个8,5个1 &题解: 每次dp,要先想到dp的对象,这次就是要枚举输入的n. dp数组也要想到边界…
Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make changes with these coins for a given amount of money. For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-cent c…