题意:有一个有线电视网络叶子结点是用户,每个用户有一个愿意支付的金额。然后每条边都有话费。问公司在不亏本的情况下最多能满足多少用户。思路:dp[v][j]
= max(dp[v][j], dp[v][j-k]+dp[x][k]-edge(v, x))其实就是背包问题,但是一开始TLE了一次,这里要有...
分类:
其他好文 时间:
2014-05-06 00:04:24
阅读次数:
318
题意:一棵树上问你最少切掉几条边使得能分割出一个结点数正好为k的子树。思路:dp[i][j]表示以i为根切掉j个结点最少要几条边。dp[v][j]
= min(dp[v][j], dp[v][j-k] + dp[x][k]);代码如下: 1 dp[v]...
分类:
其他好文 时间:
2014-05-05 23:47:19
阅读次数:
370
很锻炼DP/recursive思路的一道题,个人感觉DP/recursive算是比较难写的题目了。这道题解法的巧妙之处在于巧用-1,并且使用临时存储,节省了很多开支。这道题同时也在Career
Cup上面出现过这道题我两次调试通过,第一次错是因为input{}, output false, expe...
分类:
其他好文 时间:
2014-05-05 22:45:10
阅读次数:
352
Dijkstra。 1 #include 2 #include 3 4 #define INF
0xfffffff 5 6 int map[105][105]; 7 int dp[105]; 8 char visit[105]; 9 10 int
main() {11 int n, ...
分类:
其他好文 时间:
2014-05-05 22:34:42
阅读次数:
406
本文出自:http://blog.csdn.net/svitter
原题:http://acm.hdu.edu.cn/showproblem.php?pid=2191
题意:多重背包问题。转换成为01背包解。多重背包转化为01背包的关键在于把件数从整体中孤立出来作为一个新的个体,也就是说不管分类,有多少件就有多少种。
AC代码:
//======================...
分类:
其他好文 时间:
2014-05-04 00:33:10
阅读次数:
356
题意:有a个村庄、b个城镇, 编号分别为:1—a , a+1——a+b 。 有双神奇的鞋,可以瞬时移动,可以使用k次,每次可以移动L , 但穿这双鞋的时候,不能经过城镇 , 问:从a+b 到 1 最短距离是多少?
刚开始看这个题时 , 一点思路都没有 , dp类型的题目做得太少了。
解法:进行状态压缩, 用点+使用鞋子的次数 , 来表示一个状态 , d[i][k] , 表示到 ...
分类:
其他好文 时间:
2014-05-04 00:21:00
阅读次数:
383
本文出自:http://blog.csdn.net/svitter/
题意:
求解An 与 An-1是否相等。
n分为两个情况——
1.n为素数,
2.n为合数。
= =好像说了个废话。。素数的时候,可以直接输出no,因为素数不可能和An-1相等。合数的时候,如果n是a^b次方,那么也是NO。原因很简单,之前数字的最小公倍数的n的因子次方数,不能超过n的次方数。
/...
分类:
其他好文 时间:
2014-05-03 16:44:45
阅读次数:
331
本文出自:http://blog.csdn.net/svitter
题意:典型到不能再典型的01背包。给了我一遍AC的快感。
//============================================================================
// Name : 2602.cpp
// Author : vit
/...
分类:
其他好文 时间:
2014-05-03 16:43:59
阅读次数:
221
本文出自:http://blog.csdn.net/svitter
原题:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1053
题意:完全背包不解释。。直接贴代码。。
#include
#include
#include
using namespace std;
#defi...
分类:
其他好文 时间:
2014-05-03 16:06:14
阅读次数:
324