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

    题意:

      一个环形跑道,每到一个站可以获得汽油,每到下一个站消耗一定的汽油,问标号最小的使得能够完成一次环形的起点站。

    分析:

      看的紫书,假设从第一个点出发最多能够到达p,那么从1到p的点就一定都不是起点了。

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    const int maxn=1000005;
    int p[maxn],q[maxn];
    int main()
    {
    int T;
    scanf("%d",&T);
    int cas=0;
    while(T--)
    {
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    scanf("%d",&p[i]);
    for(int i=0;i<n;i++)
    scanf("%d",&q[i]);
    int pos;
    int i=0,flag;
    while(i<n)
    {
    int ans=0;
    flag=1;
    for(int j=0;j<n;j++)
    {
    pos=(j+i)%n;
    ans+=p[pos];
    ans-=q[pos];
    if(ans<0)
    {
    flag=0;
    break;
    }
    }
                if(flag)
    break;
    if(pos<i)
    {
    flag=0;
    break;
    }
    i=pos+1;
    }
    printf("Case %d: ",++cas);
    if(flag)
    printf("Possible from station %d ",i+1);
    else
    printf("Not possible ");
    }
    return 0;
    }
      
  • 相关阅读:
    shell编程——循环执行
    ubuntu 设置管理 集锦
    27. 计算FPS
    29 GameProject4(+GUI)
    26. D3D显示文本
    30. D3D特效
    28. GUI
    32. 细节映射
    25. GameProject3
    Direct3D渲染到纹理 (部分转)
  • 原文地址:https://www.cnblogs.com/137033036-wjl/p/4953480.html
Copyright © 2011-2022 走看看