自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 01背包 poj3211 STL助攻

bug一开始头昏脑胀把dp[0]的值赋值为1#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<cmath>#include<iostream>#include<map>#include<string>using namespace std;typedef long long

2017-01-08 17:56:48 272

原创 分组背包 poj 1837

此题的最大bug 就是时间复杂度计算错误 20*20? 、、、、、25*15*20*20此题的特点是每组“有且仅有一个” 组与组之间的转移 dp[k+1][j+v[k][i]] += dp[k][j] 这个保证了 每组有。 for(组别){ for(重量){ for(组内每件物品){ 这样的枚举顺序保证了 每组仅有一个 重量的逆

2017-01-08 17:04:36 306

原创 分组背包hdu 3033 至少选一个

感谢某神的提供的数据。 关键还是自己不够细心, b==0? 这题的状态转移细节很多 首先1.如何保证每组物品都至少选一个——> dp[][]置空,dp[1][0]置0. 从第k组,转移到第k+1组的时候,去掉o1背包常见的那种不选的继承状态->(dp[k+1][j]=dp[k][j])最主要的状态方程如下 dp[k+1][j]=max(dp[k+1][j],max(dp[k][j-w[i]]+

2017-01-08 14:16:57 498

原创 分组背包 hdu 1712

枚举的时候 用一组的物品去刷新一个重量,有种每组物品只选一次的感觉 dp[k+1][j]=max{dp[k+1][j],dp[k][j],dp[k][j-i]+A[k][i]};#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<cmath>#include<iostream>usi

2017-01-08 12:24:54 229

翻译 poj 1947 树形dp

别人的思路for(int j=n-1;j>=0;j--){ for(int k=1;k<=n-j;k++){ dp[rt][j+k]=min(dp[rt][j+k],dp[rt][j]+dp[son][k]-1); } }因为j 是递减的, 更新后的 dp[rt][j+k],没有机会成为 dp[rt][

2017-01-07 16:41:37 253

翻译 poj 2152树形dp

最大的bug就是这里 for(int jj=1;jj<=num[rt];jj++){ tem[jj]=dp[rt][jj]; } for(int j=1;j<=num[rt];j++){ for(int k=0;k<=j;k++){ //dp[i][j]=max(dp[i][j],dp[i][j-

2017-01-07 11:43:31 253

原创 hdu 3221 矩阵幂乘 + 超大a*b%c

熟悉挑战上的矩阵幂乘法找了最久的bug 就是这段代码, 不能直接% 就是 有种M周期后不是 0的东东 for(int n1=0;n1<A.size();n1++){ for(int m2=0;m2<B[0].size();m2++){ for(int m1=0;m1<A[0].size();m1++){ C[n1]

2017-01-06 23:01:08 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除