摘要: 题意:给定N个点,每个点有一个停留所需的时间,和停留能够获得的满意度,有M条边,每条边代表着两个点走动所需的时间,现在问在规定的T时间内从指定的一点S到E能够获得的最大的满意度是多少?要求停留的点的满意度要依次上升。解法:这次虽然一看就是个DP,但是两个端点的处理要格外的注意,因为两个端点均可以选择路过的方式,而不是停留,因此需要虚拟出两个端点,两个端点分别表示路过起点和终点,虚拟端点与其他节点的距离也因注意连单向边,双向边就超时了。刚开始的时候打算终点不进行处理,而只是在搜索到这某个节点的时候特判一下是否为终点,对终点进行两种更新,一种是访问一种是路过,事后证明是不行的,因此路过的更新如果入 阅读全文
posted @ 2013-06-07 20:50 沐阳 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个网格图,图中有一些点要求全部走到,问最少的花费是多少,从任意边界进入,任意边界出去,如果不能够全部走到,输出0。解法:一次spfa从边界上的所有点出发,计算到K个宝藏的最短路,然后计算出任意两个宝藏之间的最短路,最后状态压缩枚举即可。代码如下:#include <cstdlib>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;// 记得要带走全部的物品 const int INF = 阅读全文
posted @ 2013-06-07 15:36 沐阳 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 题意:非常简单,就是求一个表达式的最后结果。解法:http://blog.csdn.net/magic____/article/details/9021169代码如下:#include <cstdlib>#include <cstring>#include <cstdio>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;LL a, b, n, m;struct Matrix { int r, c; int a[2][2]; 阅读全文
posted @ 2013-06-07 00:02 沐阳 阅读(769) 评论(0) 推荐(0) 编辑