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

汽车加油问题贪心算法

发布时间: 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次

热点内容
手机编写脚本软件 发布:2024-11-30 12:41:02 浏览:872
学php如何 发布:2024-11-30 12:36:48 浏览:857
家庭电脑改网盘服务器 发布:2024-11-30 12:32:13 浏览:105
电脑服务器组装系统 发布:2024-11-30 12:32:11 浏览:998
在线显示wifi密码是什么 发布:2024-11-30 12:30:53 浏览:726
触动精灵安卓脚本 发布:2024-11-30 12:30:47 浏览:80
phpmd5加密代码 发布:2024-11-30 12:29:35 浏览:899
苹果手机锁屏怎么取消密码 发布:2024-11-30 12:28:08 浏览:860
老娘也要当间谍ftp 发布:2024-11-30 12:23:17 浏览:131
家里如何安装文件服务器 发布:2024-11-30 12:15:35 浏览:352