#include #include using namespace std;int dp[1005], w[105],v[105],T,M;int max(int x,int y) { return x>y?x:y; }void f( ){ int i,j; for (i...
分类:
其他好文 时间:
2014-08-12 21:48:14
阅读次数:
203
#include #include#includeusing namespace std;char a[10002];int b[10002];int n,ans;int dp(int x){ int i,j,max; b[0]=1; for(i=1;i>n;for(i=1;i#include#.....
分类:
其他好文 时间:
2014-08-12 18:57:04
阅读次数:
183
#include #define MAX 50+1int fib(int n){ int i,a[MAX]; a[1]=a[2]=1; for (i=3; i<=n; i++) a[i]=a[i-1]+a[i-2]; return a[n];}void main( )...
分类:
其他好文 时间:
2014-08-12 18:46:14
阅读次数:
205
题意 所有只能被2,3,5,7这4个素数整除的数称为Humble Number 输入n 输出第n个Humble Number
1是第一个humble number 对于一个Humble Number a 有2*a,3*a,5*a,7*a都是Humble Number 可以以1为基数 依次展开即可得到一定范围内的Humble Number 用i,j,k,l分别记录 2,3,5,7分别乘到了第几个Humble Number 当前在计算第cnt个Humble Number 那么有 hum[c...
分类:
其他好文 时间:
2014-08-12 10:20:23
阅读次数:
202
题意:给出n纪念品的价格和钱数m,问最多能买多少件纪念品和买这些数量的纪念品的方案数。首先,求能买最多的纪念品的数量,用贪心法可以解决。将价钱排序,然后从最便宜的开始买,这样就很容易求得最多买的纪念品的数量。方案数就要用到动态规划。dp[j][k]表示花费不超过j元买k件物品的方案数dp[j][k]...
分类:
其他好文 时间:
2014-08-12 09:00:03
阅读次数:
160
#include int fib(int n){if(nint fib(int n){ if(n#define MAX 50+1int a[MAX];int fib(int n){ if (a[n]==-1) return a[n]=fib(n-1)+fib(n-2)...
分类:
其他好文 时间:
2014-08-12 00:24:53
阅读次数:
259
先把物品重量从小到大排序 d[i][j]表示前i件物品选j对的最小疲劳
若选了第i个物品 那么和它一对的必是第i-1个物品 注意是前i件
i=j*2时 没有选择 d[i][j]=d[i-2][j-1]+(w[i]-w[i-1])^2
i>j*2时 存在第i个选或者不选之分
若选了第i个的话 那么问题就转化为在i-2个物品中选j-1个了
若不选第i个的话 问题转化为在i-1个物品中选j个了
那么就有转移方程d[i][j]=min(d[i-1][j],d[i-2][j-1]+(w[i]-w[i-1...
分类:
其他好文 时间:
2014-08-11 12:09:32
阅读次数:
177
题意 求n个数字的最大连续和
DP的入门题目 令d[i]表示以第i个数a为右端的最大连续子序列和 那么很容易得出转移方程 d[i]=max(d[i-1]+a,a)
很显然 当第i个数比以第i-1个数为右端的最大和加上第i个数还大的时候 以第i个数为右端的最大和就是第i个数自己了 同时更新左端为自己...
分类:
其他好文 时间:
2014-08-07 13:23:20
阅读次数:
264
题意 求两端文本的最长公共子单词序列 直接lcs增量法可以得出 打印路劲也是直接递归就行...
分类:
其他好文 时间:
2014-08-05 22:40:21
阅读次数:
248