int d=10000000;//与m的距离初始化 for(int i=1;i<=2*m+1;++i){//枚举背包(注意这里必须是2*m,做背包的时候也是) if(dp[i]){//如果可以选择则比较与m的距离 int temp=abs(i-m); if(temp<d){//距离小则选(必须严格小) d=temp; ans=i; } } }
这是我做完背包后在找结果,然而wa了三个点 最后下了个数据才发现存在不选的情况,i要从0开始枚举(即比较不选和全选谁更优)