首先,这不是作业,所以请不要将其标记为homewrok
我不明白这个问题。任何人都可以向我解释一下吗?这不是我不理解的英语,而是问题的一般要点。
答案 0 :(得分:5)
我解决这个问题的方法是什么?...当然宝贝......在这里,你可以去银盘子。
[1] Google搜索说:考虑在打印机上整齐打印段落的问题
[2]选择说~10个不明显的谷壳的网站。
[3]快速查看网站上的源代码...选择一些结构合理且有大量注释的代码。
[4]将它弹出到visual studio ..编写一些删除算法的quciky代码。
[5]遵循代码流程并将其与所述问题进行比较。
[6]手动检查一些结果。如果他们没有通过第3步。
[7]贯穿代码,直到你理解它是如何工作的。
然后你去......如何在7个无痛的步骤中学习任何东西。
周围喝酒......
我可以再给你一杯鸡尾酒吗?
这是你幸运的一天......我心情很好......所以,这里有一些伪代码......来自第一个 Google hit。 ..甚至有行号,所以你可以提出有关特定行的问题......荣耀的日子...... grrrr。
Lets assume that for all k s where 1 <= k <= n lk < M. PRINT_NEATLY is a bottom-up dynamic-proramming algorithm for the above recursive equation.
Lets create another array lineend[n] to record the end of line word number.
PRINT_NEATLY(n, M, l)
1 for i <-- n to 1
2 p <-- i
3 CharsLeft <-- M - lp
4 while (CharsLeft - lp+1 -1) > 0 and p < n
5 do CharsLeft <-- CharsLeft - lp+1 - 1
6 p <-- p + 1
7 if p = n
8 then c[i] <-- 0
9 lineend[i] <-- n
10 else
11 c[i] <-- a big number, probably the Maximum nuber for this type.
12 sum_lk <-- 0
13 for j <-- i to p
14 sum_lk <-- sum_lk + lj
15 cost <-- ( M -j + i - sum_lk )3 + c[j+1]
16 if cost < c[i]
17 then c[i] <-- cost
18 lineend[i] <-- j
19 // Print paragraph
20 start <-- 1
21 while start <= n
22 do
23 for word <-- start to lineend[start]
24 print ln
25 print newline
26 start <-- lineend[start] + 1
答案 1 :(得分:3)