题目大意:一个环形跑道上有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\n");
else
printf("Possible from station %d\n",k+1);
}
return 0;
}

  

最新文章

  1. Androidstudio安装AVD出现no system images installed for this target解决方案
  2. DEV提示控件ToolTipControl
  3. 常见linux命令释义(第五天)——shell变量学习
  4. CentOS6.5的openssl升级
  5. c++怎么将一个类,拆分出接口类,和实现类
  6. [Bootstrap]组件(二)
  7. 分布式系统间通信之RPC简单Demo(七)
  8. Windows下配置Nginx使之支持PHP(转)
  9. struts2(六)之ognl表达式与ActionContext、ValueStack
  10. 面试题: 多个 await 处理,有一个失败,就算作失败
  11. python模块和类的通用转换规则(2),三步转oo
  12. Spring Boot以War包启动
  13. 尚学堂java答案解析 第三章
  14. Django Rest Framework源码剖析(七)-----分页
  15. ps -ef |grep xxx 输出的具体含义
  16. In ZeroDB, the client is responsible for the database logic. Data encryption, decryption, and compression also happen client side. Therefore, the server never has any knowledge about the data, its str
  17. jQuery开发中容易忽视的错误
  18. eyoucms 前台 getshell 复现
  19. python编程os、os.path 模块中关于文件、目录常用的函数使用方法
  20. github项目切换远程https到ssh通道

热门文章

  1. jenkins之jenkins与gitlab集成
  2. ETL__pentaho__SPOON_PDI
  3. Python开发【笔记】:接口
  4. Python开发【Django】:CMDB基础
  5. Python并行编程(十二):进程同步
  6. mysql 表的增删改查 修改表结构
  7. 百度天气接口api
  8. windoes下一台电脑是无线/USB上网,如何将另一台电脑通过一拖一上网
  9. 数据挖掘-逻辑Logistic回归
  10. VirtualXposed查看手机端网页及调试