1.接水问题代码求注释
接水问题代码求注释
整个程序的源码中心思想就是:计算所有水龙头放水时间最长的那个,即是接水所接水的总时间。
min函数就是行业在接水过程中,算出接水时间最短的源码用户专属标记源码那个水龙头,也就是接水在接水过程中,确定哪个水龙头下的行业人,先接完水。源码
for(i=0;i<m;i++)
{
scanf("%d",接水&b[i]);
}
这段表示m个水龙头同时开始接水。比如样例1,行业共三个水龙头,源码即前三个人开始接水,接水pvt卫星导航源码且水龙头放水时长为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个人开始接水,淘宝客源码 net
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(i=0;i<m;i++)
{
if(max<b[i])
max=b[i];
}
printf("%d",max);
然后求出所有水龙中放水量也即时间最长的那个,即为接水时间。样例1中,b[0]、b[1]、b[2]分别为4、4、4,即为4