早教吧作业答案频道 -->其他-->
一辆汽车加满油后可以行驶N千米.旅途中有若干个加油站.若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油.并证明你的算法能产生一个最优解.
题目详情
一辆汽车加满油后可以行驶N千米.旅途中有若干个加油站.若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油.并证明你的算法能产生一个最优解.
▼优质解答
答案和解析
#include
#define N 1000
int greedy(int d[],int n,int k)
{
int num = 0;
\x05int i=0;
\x05int s=0;
for( i = 0;i < k;i++)
\x05{
if(d[i] > n)
\x05\x05{
printf("no solution\n");
return 0;
}
}
for( i = 0,s = 0;i < k;i++)
\x05{
s += d[i];
if(s > n)
\x05\x05{
num++;
s = d[i];
}
}
printf("%d\n",num);
\x05
\x05return 1;
}
void main()
{
int i,n,k;
int d[N];
\x05printf("请输入汽车可行驶:\n");
scanf("%d",&n);
\x05printf("加油站的个数:\n");
\x05scanf("%d",&k);
for(i=0;i
#define N 1000
int greedy(int d[],int n,int k)
{
int num = 0;
\x05int i=0;
\x05int s=0;
for( i = 0;i < k;i++)
\x05{
if(d[i] > n)
\x05\x05{
printf("no solution\n");
return 0;
}
}
for( i = 0,s = 0;i < k;i++)
\x05{
s += d[i];
if(s > n)
\x05\x05{
num++;
s = d[i];
}
}
printf("%d\n",num);
\x05
\x05return 1;
}
void main()
{
int i,n,k;
int d[N];
\x05printf("请输入汽车可行驶:\n");
scanf("%d",&n);
\x05printf("加油站的个数:\n");
\x05scanf("%d",&k);
for(i=0;i
看了 一辆汽车加满油后可以行驶N千...的网友还看了以下:
某加油站有两种加油方式,一种以汽油的质量计算,一种以汽油的体积计算,求哪个加油方式比较公平,并请说 2020-05-15 …
加油站有一个圆柱铝瓶罐装满了机油.(如图1)①如果要给这个圆柱形铝罐的侧面涂上油漆,涂油漆的面积是 2020-05-15 …
在加油站有这样的提示:“请熄灭火加油”、“请不要使用手机”等,这是为了防止火花点燃汽油引起火灾,因 2020-07-06 …
国内成品油价格下调,前来加油的车辆排起了长队,某加油站有2个加油枪分别给汽车加油,A车要7分钟,B 2020-07-08 …
加油站有小货车、大货车、小轿车个一辆等待加油,已知三辆车加油的时间分别是5分钟、8分钟、3分钟,要 2020-08-04 …
看到了快进来啊啊啊加油站有一个长方体形的油池,长2.5米,宽1.8米,深1.5米,已注入四分之三的 2020-08-04 …
加油站有一个长方体的油池,唱2.5米,宽.8米,深1.5米,已经注入4分之3的油.如果每立方米的油 2020-08-04 …
加油站有一个长方形的油池,长2.5米,宽1.8米,深1.5米,一注入4分之3的油,如果每立方米油重 2020-08-04 …
应用题+++++++++++加油站有个圆柱形油罐,底面周长为18.84米,里面装满油.如果每立方米 2020-08-04 …
一辆汽车从甲地到乙地运货,行至全程的67处是加油站,返回时行至全程的14的地方距加油站有18千米.甲 2020-10-29 …