摘要: 可以知道,逃出的人中,最后一个应当是A+B最长的,这是很容易发现的。那么,最选逃出去的必定是A+B最短的。这符合最优。于是,可以把各小矮人按A+B的和由大到小排序。定义DP[i][j]为i个人中逃出了j个人至少需要“之前”的留在井中的未逃出去的小矮人的高度和。注意这个值是可以为负数的,是负数,则证明... 阅读全文
posted @ 2014-11-01 15:31 chenjunjie1994 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 很明显的树形DP了。但网上有的说可以用并查集。。。。考虑一棵子树,当根结点有机器人时,则必定所有子树都要和根结点断开,而根结点向上返回的路径值则为其父结点与根结点连边的权值。当根结点安全时,假设其子树有K个危险结点,而由于K个结点需要两两不能相连,那么,至少断开K-1个结点。则把权值最小的K-1断开... 阅读全文
posted @ 2014-11-01 15:21 chenjunjie1994 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 简单的一题,使用类DIJK的算法就可以了。#include #include #include #include using namespace std;struct Edge{ int u,v; double lose; int next;}edge[2500050];int head[50010... 阅读全文
posted @ 2014-11-01 11:39 chenjunjie1994 阅读(160) 评论(0) 推荐(0) 编辑