当前位置:首页 » 操作系统 » 汽车加油问题贪心算法

汽车加油问题贪心算法

发布时间: 2023-11-05 14:02:17

⑴ 汽车加油问题 贪心算法(C++)

第一次加满油

然后在能到达的最远的加油站再加满油

如此反复, 最后到达目的地

如果中间某次加油后不能到达下面任何一个加油站

那么就无解

⑵ 求贪心算法汽车加油问题程序

#include<iostream.h>
#include<fstream.h>配键
void addoil(int &n,int &k,int *a,int *c,bool *b1,bool *b2,int &count)
{
int oil=n;
//count=0;
int i=0;
//a=new int[k+1];
b1=new bool[k+1];
c=new int[k+1];
b2=new bool[k+1];
while(i<=k)
{

if(oil-a[k]<a[k+1])
{
oil=n;
count++;
c[k]=k;
b1[k]=true;
}
if(a[k]>n)
{
b2[k]=false;
break;
}
if(oil-a[k]>a[k+1] && a[k]<=n)
i++;
}
}
void main()
{
int n,k;
int count=0;
int *a,*c;
bool *b1,*b2;
ifstream fin;
fin.open("D:\\input.txt");
fin>>n>>k;
a=new int[k+1];
b1=new bool[k+1];
c=new int[k+1];
b2=new bool[k+1];
for(int i=0;i<k+1;i++)
fin>>a[i];
addoil(n,k,a,c,b1,b2,count);
ofstream fout("D:\\output.txt");
for(int j=0;j<k+1;j++)
if(b2[j]=false)
{
fout<培谨巧<晌弯"No Solution";
return;
}
for(int l=0;l<k+1;l++)
if(b1[l]=true)
{
fout<<"should add oil at the "<<c[k]<<"service station"<<endl;
}
fout<<count;
}

⑶ 智力题!求教高手!汽车加油问题

加12次油~ 12次
具体分析~
只看前面500米~ 把500公里 没隔100公里定为一个点
也就是起点是加油站 后面五个点为油桶
你分完段后从加油站出发到第一个油桶来回要用去200公里的油则你只能存300公里的油,到底存多少一开始谁都不知道~所以我们要从后往前推
你若想行驶玩最后500公里则你车里必须在500公里处时油是满的
那么你在第4油桶必须存800公里的油 从第4油桶往第5油桶存油来回消耗200公里的油 则存300公里的油 再从第4油桶到第5油桶要消耗100公里的油
第5油桶有300公里的油 则车里还要有200公里的油 算一下你到第四油桶往第五油桶行驶时必须要有800公里的油
一次类推 第三油桶往第四油桶行驶时要有1300公里的油
第二油桶往第三油桶行驶时要有2200公里的油
第1油桶往第2油桶行驶时要有3700公里的油
加油站往第一油桶运11次是3300公里的油 回去加油 回到第一桶油的位置车上还有400公里的油 加起来刚好3700公里的油 总共加了12次

热点内容
opengl服务器源码 发布:2025-01-22 15:40:02 浏览:908
python部署服务 发布:2025-01-22 15:38:46 浏览:282
压缩机卡装 发布:2025-01-22 15:37:04 浏览:446
每天跑步40分钟可以缓解压力吗 发布:2025-01-22 15:33:24 浏览:448
线性表的链式存储结构与顺序存储 发布:2025-01-22 15:32:45 浏览:295
解压缩大师 发布:2025-01-22 15:26:51 浏览:386
xp访问win7共享打印机无权限 发布:2025-01-22 15:23:22 浏览:830
python中pandas 发布:2025-01-22 15:21:42 浏览:639
编程系列书 发布:2025-01-22 15:10:16 浏览:402
北京电脑服务器托管物理机 发布:2025-01-22 15:10:05 浏览:782