C++,codeforces,500A,A. New Year Transportation
/* codeforces,500A,A. New Year Transportation 有n个房间,标号1---n 有n-1个传送门, 标号1---(n-1),用a_i表示第i个传送门 第i个传送门可以让人从房间i传送到房间i+a_i, 1<=a_i<=n-i 通过传送门最远能前进(n-i)个房间,也就是最远能到达房间n 并且无论从哪个房间开始,一直移动,最终一定能到达房间n 问能否从房间1传送到房间t 输入: n t a_1 a_2 ... a_{n-1} */ #include <iostream> int main(){ int n,t;std::cin>>n>>t; if(t==1||t==n){ //若目的房间是1,则初始就已到达 //若目的房间是n,则最终一定能到达 std::cout<<"YES"<<std::endl; return 0; } //从房间1开始,记录每次移动到的房间 int currI = 1; for(int i = 1;i<n;++i){ if(currI==t){ //若上次移动后到达的房间是目的房间 std::cout<<"YES"<<std::endl; return 0; }else if(currI>t){ //若上次移动后到达的房间已经超过目的房间 std::cout<<"NO"<<std::endl; return 0; }else{ //若上次移动后到达的房间还未到达目的房间 int a;std::cin>>a; if(currI==i){ //若本次获取的传送门的入口是当前移动到的房间 //则进行移动 currI+=a; } } } //下面的代码应不会被执行 if(currI==t){ //此时currI和t的值应是n std::cout<<"YES"<<std::endl; }else{ std::cout<<"NO"<<std::endl; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现