zoukankan      html  css  js  c++  java
  • NBUT[1026]: 汽车加油问题

    https://ac.2333.moe/Problem/view.xhtml?id=1026

    • 问题描述
    • 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。
      对于给定的n和k个加油站位置,计算最少加油次数。

    • 输入
    • 本题有多组输入数据,直到EOF结束。
      对于每组输入数据的第一行有2 个正整数n和k(n≤5000,k≤1000),表示汽车加满油后可行驶n公里,且旅途中有k个加油站。接下来的1 行中,有k+1 个整数,表示第k个加油站与第k-1 个加油站之间的距离。第0 个加油站表示出发地,汽车已加满油。第k+1 个加油站表示目的地。

    • 输出
    • 将计算出的最少加油次数输出。如果无法到达目的地,则输出“No Solution!”。

    • 样例输入
    • 7 7
      1 2 3 4 5 1 6 6
      
    • 样例输出
    • 4
      

    在油量可以到达下一个地方的时候就不用加油,否则就要加油。

    当加了油也过不去的时候,就输出No Solution!。

    #include<stdio.h>
    #define N 1020
    int a[N];
    int main()
    {
    	int n,k,i,ans,m,flag;
    	while(scanf("%d%d",&k,&n)!=EOF)
    	{
    		for(i=0;i<=n;i++)
    			scanf("%d",&a[i]);
    		ans=0;
    		m=k;
    		flag=1;
    		for(i=0;i<=n;i++)
    		{	
    			if(a[i]>k)
    			{
    				flag=0;
    				break;
    			}
    			if(m-a[i]>=0)
    			{
    				m-=a[i];
    				continue;
    			}
    			else
    			{
    				ans++;
    				m=k-a[i];
    			}	
    		}
    		if(flag==0)
    			printf("No Solution!
    ");
    		else
    			printf("%d
    ",ans);
    	}
    	return 0;
    } 
  • 相关阅读:
    qml 无边框
    Qt 参考链接
    QPushButton QSS
    Head First设计模式之备忘录模式
    Head First设计模式之访问者模式
    Head First设计模式之状态模式
    web打印总结
    Head First设计模式之单例模式
    .Net IOC框架入门之一 Unity
    第五章 MVC之Bundle详解
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/10056597.html
Copyright © 2011-2022 走看看