UVA-11903 Just Finish it up
2024-08-22 05:28:53
题目大意:一个环形跑道上有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;
}
最新文章
- Androidstudio安装AVD出现no system images installed for this target解决方案
- DEV提示控件ToolTipControl
- 常见linux命令释义(第五天)——shell变量学习
- CentOS6.5的openssl升级
- c++怎么将一个类,拆分出接口类,和实现类
- [Bootstrap]组件(二)
- 分布式系统间通信之RPC简单Demo(七)
- Windows下配置Nginx使之支持PHP(转)
- struts2(六)之ognl表达式与ActionContext、ValueStack
- 面试题: 多个 await 处理,有一个失败,就算作失败
- python模块和类的通用转换规则(2),三步转oo
- Spring Boot以War包启动
- 尚学堂java答案解析 第三章
- Django Rest Framework源码剖析(七)-----分页
- ps -ef |grep xxx 输出的具体含义
- 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
- jQuery开发中容易忽视的错误
- eyoucms 前台 getshell 复现
- python编程os、os.path 模块中关于文件、目录常用的函数使用方法
- github项目切换远程https到ssh通道