while(q--)
{
r(x);r(y);neww=0;ans=0;
if(x<y)swap(x,y),neww=1;
if(x<=2001&&io[x][y][neww])
{pri(j[x][y][neww]);putchar('\n');continue;}
for(ll i=1;i<=c/x;i++)
if((c-i*x)%y==0)ans+=(neww==0?(((a[i]%qw)*b[(c-i*x)/y])%qw):(((b[i]%qw)*a[(c-i*x)/y])%qw)),ans%=qw;
if(x<=2001)
io[x][y][neww]=1,j[x][y][neww]=ans%qw;
printf("%lld",ans%qw);
putchar('\n');
}
}
调了一上午硬是看不出什么
另:这是Subtask10第二个点,第一个点数据只比他小一点,只跑了200ms左右
n,q<=3e5,a[i],b[i]<231