某电站24小时需要员工站岗,已知每个员工能够持续工作8个小时,而电站某一时段需要最少的员工数目如下:0-4 :5人。
4-8 :10人。
8-12 :7人。
12-16 :6人。
16-20 :8人。
20-24 :4人。求该电站应如何安排才能使一天内所派员工人数最少?
4-8 :10人。
8-12 :7人。
12-16 :6人。
16-20 :8人。
20-24 :4人。求该电站应如何安排才能使一天内所派员工人数最少?
public class expcsdn {
public static void main(String args[])throws IOException{
int time[]=new int[6];
time[0]=4;
int people[]=new int[6];
people[0]=5;
for(int i=1;i<6;i++){
time[i]=time[i-1]+4;
if(time[i]>0&&time[i]<=4){
//people[0]=5;
}
else if(time[i]>4&&time[i]<=8){
people[i]=10-people[i-1];
}
else if(time[i]>8&&time[i]<=12){
people[i]=7-people[i-1];
}
else if(time[i]>12&&time[i]<=16){
people[i]=6-people[i-1];
}
else if(time[i]>16&&time[i]<=20){
people[i]=8-people[i-1];
}
else if(time[i]>20&&time[i]<=24){
people[i]=4-people[i-1];
}
}
System.out.println(people[0]+people[1]+people[2]+people[3]+people[4]+people[5]);
}
}
A[6]存放规定站岗人数5,10,7,6,8,4,A从1开始。
令f(i)表示i*4到i*4+4时间段需要增加的人数,g(i)表示在上一时间段工作且能继续工作的人数
则有f(i+1)=A[i+1]+g(i),因为工人可以连续工作两个时间段,则有f(i)=g(i)
所以f(i+1)=A[i+1]-f(i),f(1)=5,把A[i]这个代入,可得5,5,2,4,4,0.
所以需要20个人。
打错了。。
class diaodu
{
public static void main(String [] args)
{
int[] arr={5,10,7,6,8,4};
haha.diao(arr);
}
}
class haha
{
public static void diao(int[] arr)
{
int sum=0;int ren=0,y=0;
for(int x=0;x<24 && y<arr.length;x=x+4)
{
ren=arr[y++]-ren;
sum+=ren;
System.out.println(x+"-"+(x+4)+"时段需要增加"+ren);
}
System.out.println("一天总共需要"+sum+"人");
}
}