题意:给定一棵n个节点的树,要在某些点上建设消防站,使得所有点都能够通过某个消防站解决消防问题,但是每个点的建站费用不同,能够保证该点安全的消防站的距离上限也不同。给定每个点的建站费用以及最远的消防站距离上限,求保证该树安全的最小花费。思路: 要选择部分点来建站解决消防问题,而总花费是有最优解的。....
分类:
其他好文 时间:
2015-09-16 14:16:57
阅读次数:
437
题意:有一个人他要把一个消息通知到所有人,已知一些通知关系:A 能通知 B,需要花费 v,而又知道,如果某一个小团体,其中的成员相互都能直接或间接通知到,那么他们之间的消息传递是不需要花费的,现在问这个人将消息传给所有人所需的最小花费。首先,一个团体中能够相互通知其实就是一个强连通分量,所以首先找出...
分类:
其他好文 时间:
2015-09-15 20:09:04
阅读次数:
145
题意:给一个n*m的矩阵,每个格子都是必走的,且无障碍格子,每对格子之间都有一个花费,问哈密顿回路的最小花费。思路: 这个和Formula1差不多,只是求得是最小花费,这只需要修改一下DP值为花费就行了,主要是在创建新括号,以及延续一个插头的时候花费,因为可能上一个格子有多个状态都可以转移到本格子....
分类:
其他好文 时间:
2015-09-07 22:40:17
阅读次数:
304
题目大意:将一段长为L的木棒在给定的n个切割点切开,每切一次的花费等于当前木棒的长度。求切成n+1段的最小花费。题目分析:区间DP。定义dp(i,j)表示切割区间i~j的花费,则 f(i,j)=min(f(i,k)+f(k,j))+dist(i,j)。时间复杂度为n3。代码如下:# include#...
分类:
其他好文 时间:
2015-09-07 22:26:08
阅读次数:
208
题意:有 n 个点,每个点有它所在的层数,最多有 n 层,相邻两层之间的点可以互相到达,消耗 c (但同一层并不能直接到达),然后还有一些额外的路径,可以在两点间互相到达,并且消耗一定费用。问 1 点到 n 点的最小花费将每一层拆成两个点,分别为进入层和出发层,然后相邻层的出发层可以指向进入层,花费...
分类:
其他好文 时间:
2015-09-06 23:09:14
阅读次数:
434
题意:有n个处理器,给出n*n的邻接矩阵的一半,表示相互之间传输信息的花费(另一半与给出的一半对称,即双向都可传输),x表示不能传输,问从第一个处理器传输到所有处理器的最小花费总和是多少。就是跑一遍最短路,然后求和……原来我以前做的最短路都这么水…… 1 #include 2 #include 3 ...
分类:
其他好文 时间:
2015-09-06 14:19:19
阅读次数:
150
给一棵树,边上有权值,然后给一个权值x,问从根结点出发, 走不超过x的距离,最多能经过多少个结点。走过的点可以重复走,所以可以从一个分支走下去,然后走回来,然后再走另一个分支dp[u][j][0] 表示从u出发,走了j个点,然后不回到u点的最小花费dp[u][j][1] 表示从u出发,走了j个点,然...
分类:
其他好文 时间:
2015-09-05 09:54:14
阅读次数:
168
第一次做状态压缩dp。。没有思路。。看书看明白的,不过看完发现汝哥的做法多算了一些东西,完全可以省去不算。。用两个集合,s1表示恰好有一个人教的科目,s2表示至少有两个人教的科目。d(i,s1,s2),表示考虑了前i个人时的最小花费,0-m-1必须全选上,m到m-n-1才有可能出现选或者不选的决策,...
分类:
其他好文 时间:
2015-09-02 22:03:46
阅读次数:
200
题目大意:给定一棵树,让求出依次访问k个点的最小花费,每条边的权值都为1.思路:如果能一直往下走不回来,那么这个路径肯定是最小的,这就取决于给定的k,但是怎么确定这个能一直走的长度呢,其实这个就是树的直径,也叫作最长简单路径。找出来这个直径之后,只需和k比较一下就能确定走多少步。设直径为maxx,如...
分类:
其他好文 时间:
2015-09-02 20:44:04
阅读次数:
163
题目传送门题意:题意难懂,就是一个小偷在m天内从城市1飞到城市n最小花费,输入的是每个城市飞到其他城市的航班。分析:dp[i][j] 表示小偷第i天在城市j的最小花费。状态转移方程:dp[i][j] = min (dp[i-1][k] + cost[k][j][t%day]) t表示在t天时k飞往j...
分类:
其他好文 时间:
2015-08-31 21:09:59
阅读次数:
160