摘要: 题意:求把总价值分为两个数,使这两个数接近相等,而且这两个数必须由所有设备中的其中几种设备价值构成,并先输出比较大的数,再输出另一个数。解题思路:DP算法,背包问题,求法是先求出总价值sum,再用dp[]求sum/2最多能放多少价值!即可以求出其中一个数了,另一个就是sum-dp[sum/2]了……状态:f[j]:表示软件学院取得容量为j时能获得的最大值,j<=sum/2; 状态转移:f[j]=max{f[j], f[j-v[i]]+v[i]}注意数组的大小(0<n<=50,0<v<=50,0<m<=100)View Code 1#include< 阅读全文
posted @ 2012-04-07 08:39 笑巧 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 解题思路:先排序,之后相邻的肯定是疲劳度最小的。 即: n(a-b)^2+(c-d)^2< (a-c)^2+(b-d)^2dp[i][j]表示 i 个物品取 j 对的最小疲劳数。状态转移方程: dp[i][j]=min{ dp[i-1][j], dp[i-2][j-1]+(w[i]-w[i-1])^2 }View Code 1#include<iostream>2#include<algorithm>3#include<cstdio>4usingnamespacestd;5intw[2010],dp[2010][2010];6intmain()7{8i 阅读全文
posted @ 2012-04-07 08:32 笑巧 阅读(875) 评论(0) 推荐(0) 编辑