C语言高手请进,简单的编程题

C语言高手请进,简单的编程题
是个过桥问题,有四个人,一把电筒,有一座桥,同时最多能够通过两个人,在桥上的人必须有一把手电筒,甲用时10分钟、乙5分钟、丙2分钟、丁1分钟,问在不浪费最快的人过桥速度的情况下,最短的过桥时间,要用C语言编程,求各位大虾指点!有高分!
#include
#define N 4

main ()
{
int i,j,t,s,p,time=0,mintime;
int x[N]={10,5,2,1};

for (i=0;i for (j=i+1;j if (x[i] {
t=x[i];
x[i]=x[j];
x[j]=t;
}

for (i=0;i<念团敏N;i++) /*显示排好的顺序*/
printf("x[%d]=%d\n",i,x[i]);
printf("\n");

p=N/2; /*数组元素的或派对数*/
s=N%2;

for (j=0;j {
time=time+x[j];
j++;
}

if (s==0) /*数组元素为偶数个仔枝*/
mintime=time+p*x[N-2]+(p-1)*x[N-2]+(p-1)*x[N-1];
else /*数组元素为奇数个*/
mintime=time+p*x[N-2]+(p-1)*x[N-2]+(p-1)*x[N-1]+x[N-3]; /*加上倒数第三个数*/

printf("mintime=%d\n",mintime);

getch();
}
好难找的!!!
先2分钟和1分钟的旅改过拆手判去,1分钟带着电筒返回
再5分钟和1分钟的过去,1分钟带着电筒返回
再10分钟和1分钟的过去
一共用19分钟,所以程薯悔序是

int main()
{
printf("19min\n");
return 0;
}
构造一个状态集吧。然后搜索花费最少的~
← 上一篇: 下一篇: →