avatar
冥冥之中早已注定# Joke - 肚皮舞运动
s*w
1
codeeval.com 上的一个题
给n个东西,每个东西有重量和价值,要求在重量小于给定值的时候,尽量价值大
在重量是浮点数的情况下,怎么做 bottomup 的 dp table?
我现在的解是 recursion, 而且没 memorization, 因为不知道怎么存这个 table.
帖下代码,请指教一下
#include
#include
#include
#include
#include
#include
using namespace std;
class Solution {
int weightLimit;
int n;
vector weights;
vector costs;
public:
Solution(const string &line) {
istringstream iss(line);
iss >> weightLimit;
int ind,cost;
double weight;
do {
iss.ignore(256,'(');
iss >> ind;
iss.ignore(256,',');
iss >> weight;
iss.ignore(256,'$');
iss >> cost;
iss.ignore(256,')');
if(iss.good()) {
weights.push_back(weight);
costs.push_back(cost);
}
} while(iss.good());

n = weights.size();
}
vector run2(double wlimit, vector ind) {
vector bestInd;
int bestValue = 0;
for(int i=0;ivector tInd;
int tValue = 0;
double wlimit2 = wlimit - weights[ind[i]];
if(wlimit2 > 0) {
// update tValue and tInd due to chosing a valid ind[i]
tValue += costs[ind[i]];
tInd.push_back(ind[i]);
// solve subproblem
vector ind2(ind);
ind2.erase(ind2.begin()+i);
vector ret2 = run2(wlimit2,ind2);
if(!ret2.empty())
// update tValue and tInd due to valid subproblem solution
for(auto j : ret2) {
tValue += costs[j];
tInd.push_back(j);
}
}
// update best if necessary
if(tValue>bestValue) {
bestValue = tValue;
bestInd = tInd;
}
}
return bestInd;
}
void run() {
vector ind;
for(int i=0;iind.push_back(i);
vector ret = run2(weightLimit,ind);
if(ret.empty())
cout << "-" << endl;
else if(ret.size()==1)
cout << ret[0]+1 << endl;
else {
for(int i=0;icout << ret[i]+1 << ",";
cout << ret[ret.size()-1]+1 << endl;
}
}
};
int main(int argc,char* argv[]) {
if(argc<2)
throw invalid_argument("need 1 parameter");
ifstream ifs(argv[1]);
string line;
while(getline(ifs,line)) {
Solution sol(line);
sol.run();
}
}
avatar
l*n
2
自从LD提议要重新买个稍大点的房子,心理压力就开始了,有时候做梦都还在说,两个
mortgage,一大一小。一边2000,一边4000。
现在的贷款是税前收入的1.2到1.3倍,一点压力都没有。买房的动力是,1利率低,手
里也有一些现金,没什么地方可投。2如果卖房,LD单位可报代理费,因为算
relocation。3不管卖还是买,我公司还回一部分代理费。
avatar
p*g
3
avatar
b*5
4
google knapsack
avatar
G*s
5
BSO收入高
排包子
avatar
l*y
6
天一
avatar
a*m
7
浮点的话是麻烦,毕竟是伪多项式。不过一般价格位数有限,弄成整数也还能做。

【在 s*w 的大作中提到】
: codeeval.com 上的一个题
: 给n个东西,每个东西有重量和价值,要求在重量小于给定值的时候,尽量价值大
: 在重量是浮点数的情况下,怎么做 bottomup 的 dp table?
: 我现在的解是 recursion, 而且没 memorization, 因为不知道怎么存这个 table.
: 帖下代码,请指教一下
: #include
: #include
: #include
: #include
: #include

avatar
c*o
8
BSO贴
avatar
u*q
9
LZ晒W2吧。
avatar
l*n
10
为什么?版上象我们收入的多的是。不是买不起,才睡不了安稳觉吗?你们自己一觉睡
到大天亮,才理解不了俺们。

【在 u****q 的大作中提到】
: LZ晒W2吧。
avatar
b*s
11
把旧的出租不就好了.

【在 l********n 的大作中提到】
: 为什么?版上象我们收入的多的是。不是买不起,才睡不了安稳觉吗?你们自己一觉睡
: 到大天亮,才理解不了俺们。

avatar
l*n
12
说得我都心虚了,贷款60万,再加地税,每月4000左右,我有没有算错啊?

【在 G***s 的大作中提到】
: BSO收入高
: 排包子

avatar
l*n
13
问题是能不能租掉啊,要能租掉,贷款只有60万的话要好不少的。

【在 b****s 的大作中提到】
: 把旧的出租不就好了.
avatar
b*s
14
那就卖掉, 难道也卖不掉?

【在 l********n 的大作中提到】
: 问题是能不能租掉啊,要能租掉,贷款只有60万的话要好不少的。
avatar
r*a
15
bso
发baozi!!

【在 l********n 的大作中提到】
: 自从LD提议要重新买个稍大点的房子,心理压力就开始了,有时候做梦都还在说,两个
: mortgage,一大一小。一边2000,一边4000。
: 现在的贷款是税前收入的1.2到1.3倍,一点压力都没有。买房的动力是,1利率低,手
: 里也有一些现金,没什么地方可投。2如果卖房,LD单位可报代理费,因为算
: relocation。3不管卖还是买,我公司还回一部分代理费。

avatar
l*n
16
低价肯定能卖,但是舍不得。自认为合理价的话,不知道什么时候能卖掉。版上看起来
房市很火,但我们这里我没感觉。我看很多80,90十万的卖了半年一年可能还在市场上。

【在 b****s 的大作中提到】
: 那就卖掉, 难道也卖不掉?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。