上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 32 下一页
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2412 题目大意:n个人形成一个关系树,每个节点代表一个人,节点的根表示这个人的唯一的直接上司,只有根没有上司。要求选取一部分人出来,使得每2个人之间不能有直接的上下级的关系,求最多能选多少个人出来,并且求出获得最大人数的选人方案是否唯一。树形dp+判断 状态转移方程: 对于叶子节点 dp[k][0] = 0, dp[k][1] = 1 对于非叶子节点i, dp[i][0] = ∑max(dp[j][0], dp[j][1]) (j是i的儿子) dp[i][1] = 1 + ∑dp[j][0] (j是i的.. 阅读全文
posted @ 2012-08-13 11:29 Szz 阅读(239) 评论(0) 推荐(0)
摘要: 题意:一个row*col的矩阵,每个格子是0或者1,1表示土壤肥沃可以种植草地,0则不可以。在种草地的格子可以放牛,但边相邻的两个格子不允许同时放牛,问总共有多少种放牛的方法?(不放牛也算一种情况)http://poj.org/problem?id=3254 /*折腾了 半个下午 和一个晚上 ,终于 把这道 状态dp 的题给 A 了,兴奋一下。。。。前后想了 三个状态方程,前两个 被 k 掉了我的一个错的 状态方程是 dp[r] = (第 r 行 合适的状态 个数) * dp[r - 1]; dp[r] 表示 从 第 0行 到 第 r 行的最大值 这个 最后 验证是错的 ,忽略了 r-1 .. 阅读全文
posted @ 2012-08-12 22:10 Szz 阅读(185) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1185炮兵阵地 Time Limit: 2000MSMemory Limit: 65536KTotal Submissions: 13114Accepted: 4806Description司 令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击 范围如图中黑色区域所示: 如果在地图中的灰色 阅读全文
posted @ 2012-08-12 16:10 Szz 阅读(175) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2948意:一个row*col的矩阵,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少。如图所示,最北边有bloggium的收集站,最西边有 yeyenum 的收集站,要你在这些格子上面安装向北或者向西的传送带(每个格子自能装一种)。问最多能采到多少矿(yeyenum+bloggium)? 这道 dp 1A,完全自己写的,有点小兴奋,dp菜鸟在进步。。。。。。。,首先 开始想时想了一个 dp 方程 最后验证是错的;后来自己有想了一下 ,得到了正确的 状态方程dp[i][j][0] 表示 以 i,j 为右 阅读全文
posted @ 2012-08-11 21:02 Szz 阅读(247) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=2029题意: 一个 矩形内有 许多树,给你 一个 长和寬一定的 小矩形,问最多 能 用小矩形 盖住多少棵树枚举求和: 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<iostream> 5 #include<algorithm> 6 #include<set> 7 #include<map> 8 #include<queue> 9 #include<ve 阅读全文
posted @ 2012-08-11 15:52 Szz 阅读(206) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=3280又是一道 dp 题目 一开是 有点 小思路,认为他就是括号匹配的变形吗,可是后来,越想月觉的麻烦,(后来才知道 自己 向的太多了,)一开始 认为他 可以 在任意位置 插入和删除 有一定的费用 ,怎么个dp 法呀,后来看了解题报告 ,确实和 括号匹配一样,我太菜了。。。。题意: 一个字符串 求将其 变为回文串的最小花费 ,每个 字母 添加 和删除 都要一定的花费;dp[i][j] 表示 将 str[i -----j] 变为 回文串的最小花费if(str[i] == str[j]) dp[i][j] = dp[i + 1][ j - 1] 阅读全文
posted @ 2012-08-11 11:51 Szz 阅读(233) 评论(0) 推荐(0)
摘要: 好纠结的一道题啊,一开始 写错了个字母 ,跳了半天,后来脚上去竟然不对,,看了 discuss 里面的 将 所有数据 改为 double 类型 秒过,汗。。。。。。。。。 棋盘分割Time Limit: 1000MSMemory Limit: 10000KTotal Submissions: 9151Accepted: 3215Description将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘 阅读全文
posted @ 2012-08-11 09:34 Szz 阅读(310) 评论(0) 推荐(0)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4359好纠结的一道dp 题啊,比赛是 倍他的 2 的所烧次方迷惑住了 ,没想出来看了解题报告,才知道,用dp 那样做。。。, 自己还是很弱啊,想不出来通过此题我对dp 又有了 更多的了解题目大意:给你n个节点,第i个节点的权值为2^(i-1),求满足以下条件的深度为d的二叉树的个数(最后结果对maxmod=109+7取余):左子树权值之和小于右子树权值之和,当只有一个子树时可以不满足这个条件。5000个测试点,n,d<=360题解:1.首先注意f[n][d]的结果是一定的,所以先预处理出来所有的f[n] 阅读全文
posted @ 2012-08-10 21:53 Szz 阅读(335) 评论(0) 推荐(0)
摘要: 二分法适用于求单调的时候用的,就比如说排序好的数组,那是递增的或者递减的。如果像出现了下图二次函数那样的怎么求他的最值呢? 二分法早就失去了他的意义了。不过还是可以用三分法来实现的,就是二分中再来二分。比如我们定义了L和R,m = (L + R) / 2,mm = (mid + R) / 2; 如果mid靠近极值点,则R = mm;否则就是mm靠近极值点,则L = m;这样的话,极值还是可以求的。具体的还是看看题目吧。三分查找的算法,对于求凸性或凹性函数的极值非常方便模版 : 1 double solve(double l,double r) 2 { 3 4 double ... 阅读全文
posted @ 2012-08-10 15:02 Szz 阅读(741) 评论(0) 推荐(1)
摘要: Party All the TimeTime Limit: 6000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 926Accepted Submission(s): 341Problem DescriptionIn the Dark forest, there is a Fairy kingdom where all the spirits will go together and Celebrate the harvest every year. But there i 阅读全文
posted @ 2012-08-10 11:09 Szz 阅读(444) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 32 下一页