小编Jac*_*ack的帖子

0/1背包动态编程Optimazion,从2D矩阵到1D矩阵

我需要维基百科的一些澄清:背包,部分

因此,该解决方案将在O(nW)时间和O(nW)空间中运行.另外,如果我们只使用一维数组m [W]来存储当前最优值并将该数组传递i + 1次,每次从m [W]重写为m [1],我们得到相同的结果仅用于O(W)空间.

我无法理解如何将2D矩阵转换为1D矩阵以节省空间.另外,rewriting from m[W] to m[1] every time意味着什么(或者它是如何工作的).

请举一些例子.假设我有{V,W} - > {(5,4),(6,5),(3,2)},K ​​= 9.

一维阵列怎么样?

algorithm optimization knapsack-problem dynamic-programming

6
推荐指数
2
解决办法
7838
查看次数

可以将vim中的光标更改为下划线吗?

有没有办法让光标成为下划线 - > _而不是框?

我查看了这个帖子并尝试了命令,但没有改变.我知道有一个set cursorline选项,但这不是我想要的.

布朗尼指出,如果你能告诉我如何让它眨眼.

linux vim

1
推荐指数
1
解决办法
1543
查看次数

在ifstream输入期间vim文件末尾的新行

我为我正在做的作业制作了一些测试文件,但我不确定为什么vim会在文件末尾给我额外的字符.

所以我创建了一个包含A,B和C的"ABC"文件,最后没有新行.所以像

vim ABC

AAAABBBCC
Run Code Online (Sandbox Code Playgroud)

我输出了部分读取代码

 46    while(1) {
 47       ch = infile.get();
 48       if(infile.eof()) {
 49          break;
 50       }
 51       cout << '~' << ch << '~' << (int)ch << '~' << endl;
 52       v[(int)ch]++;
 53    }
Run Code Online (Sandbox Code Playgroud)

我得到了

~A~65~
~A~65~
~A~65~
~A~65~
~A~65~
~B~66~
~B~66~
~B~66~
~C~67~
~C~67~
~
~10~
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我在输入文件中输入换行符

c++ vim fstream

0
推荐指数
1
解决办法
210
查看次数