zoukankan      html  css  js  c++  java
  • UVA-11903 Just Finish it up

    题目大意:一个环形跑道上有n个加油站,每个加油站可加a[i]加仑油,走到下一站需要w[i]加仑油,初始油箱为空,问能否绕跑道一圈,起点任选,若有多个起点,找出编号最小的。

    题目分析:如果从1号加油站开始走,若跑不完一圈,意味着到了某个站p的最大油量走不到下一站,则以2~p为起点都不能跑完一圈。

    代码如下:

    # include<iostream>
    # include<cstdio>
    # include<cstring>
    # include<algorithm>
    using namespace std;
    
    int a[100005],w[100005],vis[100005];
    
    int judge(int n)
    {
        int s=0,k=0,t=0;
        vis[0]=1;
        for(int i=0;i<n;i=(i+1+n)%n){
            if(k==n) return s;
            t+=a[i];
            if(t<w[i]){
                s=(i+1+n)%n;
                if(vis[s]) return -1;
                vis[s]=1;
                k=t=0;
            }else{
                ++k;
                t-=w[i];
            }
        }
        return -1;
    }
    
    int main()
    {
        int n,T,cas=0;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            for(int i=0;i<n;++i){
                scanf("%d",a+i);
                vis[i]=0;
            }
            for(int i=0;i<n;++i)
                scanf("%d",w+i);
            printf("Case %d: ",++cas);
            int k=judge(n);
            if(k==-1)
                printf("Not possible
    ");
            else
                printf("Possible from station %d
    ",k+1);
        }
        return 0;
    }
    

      

  • 相关阅读:
    请求格式
    表格操作laytpl
    layui的弹出框
    layui表格
    js概念
    栈,队列
    数据结构--线性数据结构
    Symbol详情: 在不支持es6的浏览器上,通过Babel转译
    jquery中用bootstrap中的表单验证及提交
    layui的layer报错 layer is not defined at checkUse
  • 原文地址:https://www.cnblogs.com/20143605--pcx/p/4868169.html
Copyright © 2011-2022 走看看