题解 AT_joi2010yo_b すごろく
ImmatureDreamer · · 题解
Solution
Ideas
这道题只需要照着题意,模拟即可。
可以从
Code
#include <iostream>
using namespace std;
long long a[1002], b[1002], n, m, t=1; // 不开 long long 见祖宗
int main(){
cin>>n>>m;
for(long long i=1; i<1+n; ++i) cin>>a[i];
for(long long i=1; i<1+m; ++i) cin>>b[i];
for(long long i=1; i<1+m; ++i){ // 从 1 到 m 的顺序
t+=b[i]; // 计算该轮 t 的值,如题
t+=a[t];
// 容易搞错成 t=t+b[i]+a[t],但题目说了是先加 b[i] 在加 a[t],a[t] 的 t 是加上了 b[i] 的 t,我前几次就是这样爆 0 的
if(t>=n) return cout<<i<<'\n', 0;
// return cout 的意思是先输出,在直接结束,at 不换行,爆 0 两行泪
}
return 0;
}
谢谢观看,若有问题欢迎在评论区留言,我会一一回复。
小可的