DP
Minakami_Yuki
主业死宅,副业写代码
展开
-
Uva-1218 Perfect Service
题目链接:Perfect Service题目大意:给一颗树,对其进行染色,使未染色的结点恰好和一个染色的结点相连,求符合题意的最少的染色数。解题思路:此题的难点在于dp数组的第二维存储的并不是此结点是否染色,而是当前节点和子结点的关系,关系分为3种: 1.子结点染色 2.父结点染色,子结点不染色 3.子结点父结点均不染色 代码如下:#include <map> #include <s原创 2015-09-07 23:09:02 · 368 阅读 · 0 评论 -
Uva-12589 Learning Vector
题目链接:Learning Vector题目大意:给N个向量,选取K个,使得这些向量与x轴和最右侧的直线围成的封闭区间面积最大。解题思路:一开始没有排序就DP没有过,后听菊苣按照斜率排序就A了。后来想了一下这样做是为了避免后效性,或者说在选N个的情况下按斜率排序才是最优解,在前提的最优解下DP才能找到最终的最优解。#include <map> #include <set> #include <cma原创 2015-09-06 22:09:13 · 499 阅读 · 0 评论 -
HDU-4939 Stupid Tower Defense
题目链接:Stupid Tower Defense 题目大意:一条长度为n的道路,有敌人从道路右端袭来,敌人有自己的速度,你的任务是尽可能多得使敌人受到伤害。红塔是直接每秒造成x点伤害,绿塔是经过它之后每秒造成y点伤害(可叠加),蓝塔是经过它之后每走一个单位的道路需要增加z秒(可叠加)。 解题思路:直接DP的话会超时,于是我们用一个贪心的思路来做这道题,如果在前面的道路放蓝塔或绿塔(或全部不放)原创 2015-09-06 21:56:12 · 362 阅读 · 0 评论 -
Uva-1220 Party at Hali-Bula
题目链接:Party at Hali-Bula题目大意:给一棵树,父节点和其子结点不能同时染色,问最多可以选取多少个结点染色,如果解唯一则输出Yes否则输出No。解题思路:树形DP,dp[i][0]表示标号为i的节点不染色的最大选取值,dp[i][1]则是染色时的情况。更新的时候再判断一下唯一性: 1.dp[v][0] == dp[v][1]子节点是否染色都一样,则dp[u][0]不唯一。原创 2015-09-07 22:45:30 · 380 阅读 · 0 评论 -
Uva-10817 Headmaster's Headache
题目链接:Headmaster’s Headache题目大意:有S门课,M个在岗的老师,N和应聘者,求每门课都至少有两个老师教的最少花费是多少。解题思路:课程总数小于8果断用状压DP,DP数组第一维存老师的编号,第二维存有且仅有一个老师讲的课程的集合,最后一维存至少有两个老师讲课的课程的集合。这道题推荐用记忆化搜索。代码如下:#include <map> #include <set> #includ原创 2015-09-07 23:24:19 · 407 阅读 · 0 评论