摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2546题意: 给你一些饭菜的价格,和你饭卡的余额,余额大于等于5元时可以刷任何价格的菜,算出你买了这些菜之后饭卡中最少的一组解(余额可以为负)。坑爹: 这道题中,他的价格也就是背包中的容量,也是背包中的价值,总余额如果超出5元要将总余额减去5元的钱尽量用掉。 解法 用到了一点贪心的思想,用一个sort排序,将便宜的菜买了,尽量将饭卡里的余额靠近5元,然后在买一个最贵的菜,这样就会让饭卡里的余额最少了。View Code 1 #include<iostream> 2 #include<algo 阅读全文
posted @ 2012-09-05 20:57
pc....
阅读(198)
评论(0)
推荐(0)
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1203题意: 一道01背包的水题,每一行分别是申请所需的费用和被录取的概率,Speakless只有一定的钱,要在这些规定的钱内找到至少能被一所学校录取的概率的最大值。坑爹: 才刚开始看01背包问题,对初始化的的操作不是很清楚,而且这个在计算f[n]的时候要尽量的小,而达到1-f[n]最大。解法: 套用01背包的公式,而且将 f 数组全部初始化为1,从而保证没有一所学校录取的时候 1 - f [n] 为 0.View Code 1 #include<iostream> 2 using namespa 阅读全文
posted @ 2012-09-05 20:00
pc....
阅读(160)
评论(0)
推荐(0)
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=1162题意: 给出N个坐标,坐标之间的距离就是权值,是个最小生成树的问题,用Kruskal算法做。坑爹: 一道简单的最小生成树的题目,N个点对应要有N-1条边,没什么难点主要是要细心点就行了。解法: Kruskal算法的模版一套上去就行了。View Code 1 #include<iostream> 2 #include<math.h> 3 #include<algorithm> 4 using namespace std; 5 6 const int maxn = 100 阅读全文
posted @ 2012-09-05 19:52
pc....
阅读(210)
评论(0)
推荐(0)
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=2602题意: 给你N根骨头,分别有它们的价值和体积,他的袋子有规定最多能装多少体积的骨头,需要你求出他收集的骨头的总体积不超过他的袋子的情况下算出袋子中骨头价值最高的一个解。坑爹: 今天才刚看 01背包 ,现在也不是太明白吧,这题是水题,只要套下公式就出来了。解法: 用01背包那个状态转移方程(资料上复制的伪代码)for i=1..N for v=V..0 f[v]=max{f[v],f[v-c[i]]+w[i]};View Code 1 #include<iostream> 2 using na 阅读全文
posted @ 2012-09-05 10:43
pc....
阅读(196)
评论(0)
推荐(0)
摘要:
http://acm.hdu.edu.cn/showproblem.php?pid=3790题意: 普通的最短路问题,只不过加了个费用,在有多条最短路的情况下输出花费最少的那组答案.(双重权值)坑爹: 有重边的情况,开始做的时候当判断重边比原来小的时候,还去判断费用是不是比原来小..这样就会出错..是在找最短路径的前提下找到最小的花费.disprice数组和dis数组同步操作,但对dis进行松弛的时候,如果经过另一条路径在到目的地就要比较这两条路哪变的费用少.解法: 用个Dijkstra算法将dis和disprice进行松弛解出答案.View Code 1 #include<iostr. 阅读全文
posted @ 2012-09-05 00:40
pc....
阅读(196)
评论(0)
推荐(0)
浙公网安备 33010602011771号