关注
const int MAX=500;
bool dp[MAX+1][MAX+1];
void beibao(int weight){
for(int i=MAX;i>=0;--i){
for(int j=MAX;j>=0;--j){
if(i>=weight&&dp[i-weight][j]){
dp[i][j]=true;
}
if(j>=weight&&dp[i][j-weight]){
dp[i][j]=true;
} }
}
}
int getNum(int* a,int n){
memset(dp,false,sizeof(dp));
dp[0][0]=true;
for(int i=0;i<n;++i) beibao(a[i]);
for(int i=MAX;i>=0;--i) if(dp[i][i]) return i;
} 早上想了一下,感觉可以用二重背包来写,要注意状态转移要从更大的状态开始操作,细节可参考上述代码。 复杂度为O(n*m^2) n最大为50,m最大为500。
查看原帖
点赞 6
相关推荐
牛客热帖
更多
正在热议
更多
# 面试时间长是好事吗? #
23865次浏览 197人参与
# 入职跑路最快的一次经历 #
4625次浏览 64人参与
# 思朗科技求职进展汇总 #
5810次浏览 98人参与
# 提名点击就挂的公司 #
28401次浏览 129人参与
# ___岗狗都不干,我干! #
3206次浏览 29人参与
# 校招谈薪技巧 #
9264次浏览 176人参与
# 乐堡互娱校招 #
8906次浏览 118人参与
# 你在职场中沾染到的“坏”习惯 #
3058次浏览 42人参与
# 国企秋招,你投了吗? #
2872次浏览 39人参与
# 拿到offer之后,可以做些什么 #
5478次浏览 56人参与
# 大学四年该怎么过,才不算浪费时间? #
10418次浏览 67人参与
# TCL华星光电工作体验 #
4818次浏览 19人参与
# 机械/制造每日一题 #
66447次浏览 1081人参与
# 如何看待应届生身份? #
151991次浏览 1562人参与
# 双非本科的出路是什么? #
149801次浏览 1334人参与
# 材料人的华为红黑体验 #
29703次浏览 171人参与
# 你投递的公司有几家约面了? #
132532次浏览 902人参与
# 度小满求职进展汇总 #
5651次浏览 35人参与
# 秋招后遗症 #
35567次浏览 299人参与
# 你的国庆怎么过 #
34943次浏览 347人参与
# 饿了么求职进展汇总 #
74389次浏览 677人参与
# 水滴求职进展汇总 #
10059次浏览 54人参与