接水问题代码求注释

(分钟前 更新) 401 8275

最新回答

整个程序的中心思想就是:计算所有水龙头放水时间最长的那个,即是所接水的总时间。
min函数就是在接水过程中,算出接水时间最短的那个水龙头,也就是在接水过程中,确定哪个水龙头下的人,先接完水。
for(i0;i<m;i++)
{
scanf("%d",&b[i]);
}
这段表示m个水龙头同时开始接水。比如样例1,共三个水龙头,即前三个人开始接水,且水龙头放水时长为b[0]、b[1]、b[2]分别为4、4、1
for(;i<n;i++)
{
scanf("%d",&a);
b[min(b,m)]+a;
}
这段就是整段程序的精髓,这段就是每次一个人接水的水龙头编号,并且将此水龙头放水的时间延长。
比如第m+1(前m个人已经开始同时接水)所接水的位置出min(b,m)可以返回,比如样例1,第4个人开始接水,
min(b,m)返回(b[0]、b[1]、b[2]分别为4、4、1)为2,即在第三个水龙头下接水。
此时第三个水龙头接时间即为b[2]1+2即b[2]变为3,然后当第m+2即第5个人接水,
此时min(b,m)中b[i](b[0]、b[1]、b[2]分别为4、4、3)最小为b[2]3,仍然返回2,即仍在第三个水龙头下接水
所以当第5个人接完水,此时b[2]3+1变为4,此时所有人接完水。
for(i0;i<m;i++)
{
if(max<b[i])
maxb[i];
}
printf("%d",max);
然后求出所有水龙中放水量也即时间最长的那个,即为接水时间。样例1中,b[0]、b[1]、b[2]分别为4、4、4,即为4
没腰的麦兜 2024-05-15

扩展回答

热门问答

装修专题

首页 >  接水问题代码求注释

其他人还看了

页面运行时间: 0.023442983627319 秒