早教吧 育儿知识 作业答案 考试题库 百科 知识分享

pascal石子合并:有n堆石头质量分别为W1,W2,……,Wn(W≤100000).现在需要你将石头合并为两部分,使有n堆石头质量分别为W1,W2,……,Wn(W≤100000).现在需要你将石头合并为两部分,使两部分的质量

题目详情
pascal 石子合并:有n堆石头质量分别为W1,W2,……,Wn(W≤100 000).现在需要你将石头合并为两部分,使
有n堆石头质量分别为W1,W2,……,Wn(W≤100 000).现在需要你将石头合并为两部分,使两部分的质量之和最接近.
代码如下:
var ans,sum,i,k,n:longint;
w:array[0..20]of longint;
function min(a,b:longint):longint;
begin
if a>b then exit(b) else exit(a);
end;
procedure dfs(k,tot:longint);
begin
if (tot*2>=sum)or(k>n)then
begin
ans:=min(ans,abs(sum-tot-tot));
exit;
end;
dfs(k+1,tot+w[k]);
dfs(k+1,tot);
end;
begin
ans:maxlongint;
sun:=0;
read(n);
for i:=1 to n do
begin
read(w[i]);
inc(sum,w[i]);
end;
dfs(1,0);
writeln(ans);
end.
dfs(1,0)
为什么初始化是1和0?
k和tot 又是什么?
求大牛详解RP+++
▼优质解答
答案和解析
k表示第k堆石头,tot表示分好的第一部分石头的质量
dfs(1,0)表示搜索当分好的第一部分石头质量为0时,第一堆石头的分法
看了pascal石子合并:有n堆石...的网友还看了以下:

岸边停靠着abcd四只汽艇,它们的船速不同,如果单独开到对岸去,a挺需要一分钟,b岸边停靠着abc  2020-06-05 …

岸边停靠着abcd四只汽艇,它们的船速不同,如果单独开到对岸去,a挺需要一分钟,b挺需要两分钟,c  2020-06-05 …

>>>智商测试题?一个漆黑的夜晚,甲乙丙丁四人需要过一座独木桥(照明工具只有一只手电筒,每次只能同  2020-06-12 …

四年级同学做红花.1、四年级同学做红花,每人做4朵红花,若一人单独做,裁纸需要两分钟每人最多可裁8  2020-06-14 …

作业哦,请急速搞定小明骑在马背上赶马过河,共有甲乙丙丁四匹马.甲要两分过河,乙要三分,丙要六分,丁  2020-06-15 …

从A到B有两条路可走,小王从A过C到B比走另一条路少用3分钟,而从A到B再过C返回A要53分钟.小  2020-06-16 …

小明烙鸡蛋饼,锅里每次最多可以放两张饼,一张要烙两面,每烙一面需要两分钟,要烙五张最少需要几分钟?  2020-06-19 …

放牛娃小牛骑在牛背上过河!共有甲乙丙丁四头牛!甲过河要一分钟!乙要两分钟,丙需5分钟,丁牛过河需六  2020-06-27 …

统筹规划问题之平底锅烙饼一个平底锅、每次只能放两张饼、一张饼有两个面、煎熟一面要用一分钟、则煎熟一  2020-06-29 …

看你能答几个?一只平底锅上只能煎两只饼,用它煎一只饼需要两分钟(正面反面各一分钟),问:煎三只饼需  2020-07-07 …