汽车加油问题

#include<stdio.h>
int greedy(int x[],int n,int k){
	int sum=0;
    for(int j=0;j<=k;j++){
        if(x[j]>n)
		{
			printf("No Solution!\n");
			return -1;
		}
	}
    for (int i=0,s=0;i<=k;i++)
    {
        s+=x[i];
        if(s>n)
        {
            sum++;
            s=x[i];
        }
    }
    return sum;
}
int main()
{
    int i,k,n;
    int x[1000];
	printf("请输入加油站数目:\n");
	scanf("%d",&k);
	printf("请输入汽车加满油可行驶最远距离:\n");
	scanf("%d",&n);
	printf("请输入加油站之间的距离:\n");
    for(i=0;i<=k;i++)
    {
        scanf("%d",&x[i]);
    }
    int t=greedy(x,n,k);
    printf("最少加油次数是:%d\n",t);
    return 0;
}

  

原文地址:https://www.cnblogs.com/zili/p/9906481.html

时间: 2024-10-09 01:50:09

汽车加油问题的相关文章

【线性规划与网络流24题】汽车加油行驶问题 分层图

汽车加油行驶问题 Time Limit: 1 Sec  Memory Limit: 128 MB Description 给定一个 N*N的方形网格,设其左上角为起点◎,坐标为( 1,1),X轴向右为正, Y轴向下为正,每一个方格边长为 1,如图所看到的.一辆汽车从起点◎出发驶向右下角终点▲,其坐标为( N,N).在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油.汽车在行驶过程中应遵守例如以下规则: (1)汽车仅仅能沿网格边行驶,装满油后能行驶 K条网格边.出发时汽车已装满油,在起点与终

男子为汽车加油被拒 侮辱加油站员工持刀将其刺伤

记者昨日从番禺警方了解到,6月22日发生在番禺区大石街番石加油站的伤害案告破,警方已于7月22日抓获犯罪嫌疑人王某(男,29岁,贵州人). 6月22日下午3时许,一名男子驾驶一辆无牌摩托车来到番禺区大石街的番石加油站,要求加油站为他的摩托车加油.加油站一名女员工按照“禁油令”要求,拒绝为该车加油,遭到男子的辱骂.随后,男子从衣服口袋抽出一把小刀将女员工手臂刺伤,然后逃离.7月22日晚,办案民网络pos机警在佛山市顺德区大良街某出租屋内将王某抓获. 经审讯,王某交代,6月22日,他从顺德出发,驾驶

【网络流24题】汽车加油行驶问题(最短路)

[网络流24题]汽车加油行驶问题(最短路) 题面 Cogs 题解 还是SPFA呀... 把剩余的油量直接压进状态里面就好 额外加一个原地加油的决策就行 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map

汽车加油行驶问题

汽车加油行驶问题 网络流24题中的,单好像不用费用流水过更快?(我没测过) 广搜搞一下,按剩余油量分层. #include <queue> #include <cstdio> #include <cstring> const int dx[4]= {0,0,1,-1},dy[4]= {1,-1,0,0}; int n,k,a,b,c,g[105][105],dis[105][105][15],ans=0x3f3f3f3f; struct node {int x,y,re

贪心算法--汽车加油问题

基本要素: 贪心选择:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 最优子结构:当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质. 过程: 建立数学模型来描述问题: 把求解的问题分成若干个子问题: 对每一子问题求解,得到子问题的局部最优解: 把子问题的解局部最优解合成原来解问题的一个解. 汽车加油问题 一辆汽车加满油后可行驶 n公里.旅途中有若干个加油站.设计一个有效算法,指出应 在哪些加油站停靠加油

贪心算法:汽车加油问题

1.试用贪心算法求解汽车加油问题:已知一辆汽车加满油后可行驶n公里,而旅途中有若干个加油站.试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少请写出该算法. #include <iostream> #include <algorithm> #define M 100 using namespace std; /*加满油之后可行驶n公里, 对于给定的n和k个加油站位置,计算最少加油次数. 基本思路:经过加油站时如果汽车有油,且能到达下一个加油站, 就不加油,否则,加油 设

贪心算法求解汽车加油问题

试用贪心算法求解汽车加油问题: 已知一辆汽车加满油后可行驶n公里,而旅途中有若干个加油站.试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少,请写出该算法: 1 int greedy(vecter<int>x,int n)//定义一个int类型的向量x 2 { 3 int sum=0,k=x.size();//求k为x的长度 4 for(int j=0;j<k;j++) 5 { 6 if(x[j]>n) //加一次油最多行驶n公里,超过的话油不够使,车停在半路上了. 7

汽车加油行驶(cogs 737)

?问题描述:给定一个N*N 的方形网格,设其左上角为起点◎,坐标为(1,1),X 轴向右为正,Y轴向下为正,每个方格边长为1,如图所示.一辆汽车从起点◎出发驶向右下角终点▲,其坐标为(N,N).在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油.汽车在行驶过程中应遵守如下规则:(1)汽车只能沿网格边行驶,装满油后能行驶K 条网格边.出发时汽车已装满油,在起点与终点处不设油库.(2)汽车经过一条网格边时,若其X 坐标或Y 坐标减小,则应付费用B,否则免付费用.(3)汽车在行驶过程中遇油库则应

【网络流24题15】汽车加油行驶问题

题面戳我 题目描述 给定一个 \(N×N\) 的方形网格,设其起点坐标\((1,1)\),\(X\)轴向右为正,\(Y\)轴向下为正,每个方格边长为\(1\),终点坐标为 \((N,N)\). 在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油.汽车在行驶过程中应遵守如下规则: 汽车只能沿网格边行驶,装满油后能行驶 \(K\) 条网格边.出发时汽车已装满油,在起点与终点处不设油库. 汽车经过一条网格边时,若其\(X\)坐标或\(Y\)坐标减小,则应付费用 \(B\),否则免付费用. 汽车在