题解:AT_abc457_c [ABC457C] Long Sequence
Gardener2015 · · 题解
思路
我们可以建立一个变量
代码
#include<bits/stdc++.h>
using namespace std;
long long n,k,l[200001],c,now;//不开long long见祖宗
map<long long,map<long long,long long> >a;//因为开数组会导致MLE,所以我使用map完成
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>l[i];
for(int j=1;j<=l[i];j++)
cin>>a[i][j];
}
for(int i=1;i<=n;i++){
cin>>c;
now+=c*l[i];//拼接增加长度
if(k>now)//如果长度过短则直接跳到下一层循环
continue;
cout<<((k-(now-c*l[i]))%l[i]==0?a[i][l[i]]:a[i][(k-(now-c*l[i]))%l[i]])<<endl;//长度足够,输出答案
break;
}
return 0;
}
AC 记录。