早教吧作业答案频道 -->其他-->
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+++
有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时,第一堆石头的分法
dfs(1,0)表示搜索当分好的第一部分石头质量为0时,第一堆石头的分法
看了pascal石子合并:有n堆石...的网友还看了以下:
在大枣红了的时候,几个小朋友正在大枣树下用石块投向枣树,若某个小朋友从看到石块击中枣树树枝到听到大 2020-07-01 …
在大枣红了的时候,几个小朋友正在大枣树下用石块投向枣树,若某个小朋友从看到石块击中枣树树枝到听到大 2020-07-01 …
2008北京奥运会的金牌由纯银、玉石、纯金组成,金牌的总体积约为23立方厘米,镶嵌玉石的体积约为5 2020-07-01 …
时间定额问题已知某砖混结构建筑物体积为900m3,其中毛石带形基础的工程量为110m3,假定1m3 2020-07-11 …
选择题一颗钻石比一加仑水卖的价钱更高,这是因为()A.奢侈品总比必需品卖的价钱更高B.只有一小部分 2020-07-12 …
化学必修一计算题..急救!实验室需要0.5molCO2,现用含碳酸钙80%的石灰石与足量的稀盐酸反应 2020-12-19 …
修筑一条长0.8千米的公路用沙石20吨,照这样计算,修筑一条长125千米的公路需要沙石多少吨? 2021-01-18 …
修筑一条长0.8千米的公路用沙石20吨,照这样计算,修筑一条长15.5千米的公路需要沙石多少吨? 2021-01-18 …
实验室需要0.5molCO2现用含caco390%的石灰石与足量的稀盐酸反应(石灰石中杂质不与稀盐酸 2021-02-06 …
实验室中需要0.5mol二氧化碳实验室需要0.5mol二氧化碳,现用含碳酸钙80.0%的石灰石与足量 2021-02-06 …