早教吧作业答案频道 -->其他-->
一辆汽车加满油后可以行驶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千...的网友还看了以下:
1、(1)同学们做操,每行10人,要站18行.如果改成每行12人,要站成多少行?(2)同学们做操, 2020-05-21 …
据了解,火车票价按“全程参考价×实际乘车里程数总里程数”的方法来确定.已知A站至H站总里程数为x千 2020-05-24 …
一辆长途汽车上午7:00出发,下午1:00到达,沿途各站共停靠1小时30分,这辆车实际行驶了几小时 2020-06-15 …
一陨石飞向某行星途中在距行星表面高h处与一以速度v1绕该行星做匀速圆周运动的宇宙飞行站想撞结果陨石 2020-06-25 …
元元同学有急事准备从南开中学打车去大坪,出校门后发现道路拥堵使得车辆停滞不前,等了几分钟后她决定步 2020-07-06 …
甲乙两辆火车从两地相向而行,甲车每小时行62千米,乙车每小时行78千米,甲车开出1小时后,乙车才开 2020-07-09 …
据了解,火车票按“全程参考价×实际乘车里程数总里程数”的方法来确定.已知A站至B站总里程数为150 2020-07-18 …
同学们做操,每行20人,可以站18行,如果每行站24人,可以站多少行.用比例解这道题时,可以知道一定 2020-11-03 …
根据表格提供的信息完成相关问题:表1:全国列车时刻表表2:北京站始发21次列车途径站及时刻表问题1. 2020-11-29 …
一列火车从甲站开往乙站,中途有4个站点(中途每站都要停靠),请问一共要为这列火车准备几种不同的车票? 2020-12-04 …