社区讨论
近视后人 WA on #12 #13
P7811[JRKSJ R2] 你的名字。参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mjvl75x1
- 此快照首次捕获于
- 2026/01/01 23:15 2 个月前
- 此快照最后确认于
- 2026/01/04 18:15 2 个月前
本错误来自 hhr
请检查解决小 的函数是否写错。
以下是 hhr 的小 函数
CPPinline void solvek(long long k)
{
memset(kuai,0x3f,sizeof(kuai));
for(long long i=1;i<=n;i++) kuai[i/v]=min(kuai[i/v],a[i]%k);
for(long long i=le[k];i<=ri[k];i++)
{
long long minn=2e9,L=q[i].l,R=q[i].r;
if(L/v==R/v)
{
for(long long x=L;x<=R;x++) minn=min(minn,a[x]%k);
}
else
{
if(L%v!=0)
{
long long end=L/v*v+v;
for(long long x=L;x<end&&x<=n;x++) minn=min(minn,a[x]%k);
}
for(long long x=L/v+1;x<R/v;x++) minn=min(minn,kuai[x]);
if(R%v!=v-1&&R%v!=0)
{
long long start=R/v*v;
for(long long x=start;x<=R;x++) minn=min(minn,a[x]%k);
}
else if(R%v==v-1) minn=min(minn,kuai[R/v]);
}
ans[q[i].id]=minn;
}
}
而以下是正确的小 函数
CPPinline void solvek(long long k)
{
memset(kuai,0x3f,sizeof(kuai));
for(long long i=1;i<=n;i++) kuai[i/v]=min(kuai[i/v],a[i]%k);
for(long long i=le[k];i<=ri[k];i++)
{
long long minn=2e9,L=q[i].l,R=q[i].r;
if(L/v==R/v)
{
for(long long x=L;x<=R;x++) minn=min(minn,a[x]%k);
}
else
{
int Lp=L/v*v+v-1,Rp=R/v*v;
for(int i=L;i<=Lp;i++) minn=min(minn,a[i] % k);
for(int i=Rp;i<=R;i++) minn=min(minn,a[i] % k);
for(int i=L/v+1;i<R/v;i++) minn=min(minn,kuai[i]);
}
ans[q[i].id]=minn;
}
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...