社区讨论

就我而言

CF213E Two Permutations参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lwwzn6kx
此快照首次捕获于
2024/06/02 11:34
2 年前
此快照最后确认于
2024/06/02 14:24
2 年前
查看原帖
无论是写在线段树外求出除数的逆元进行操作
CPP
for(int i=n+1;i<=m;i++)
    {
        int x=pos[i-n];
        modify(1,0,x-1,in,0,m+1);//除以前面的数
        modify(1,x,0,0,m+1);//去掉此数
        x=pos[i];
        modify(1,0,x-1,base,0,m+1);//前面统一乘
        int cnt=find(1,x+1,m+1,0,m+1).cnt;//后面的个数
        modify(1,x,h[cnt]*i%P,0,m+1);//加上这一位
        if(mp[find(1,0,m+1,0,m+1).sum%P])
            ans++;
    }
还是在pushup的时候进行操作
CPP
info merge(info a,info b)
{
    info c;
    c.sum=a.sum*h[b.cnt]+b.sum;
    c.cnt=a.cnt+b.cnt;
    return c;
}
对于模数都过不去,需要自然溢出
但还有疑问 这篇题解 是如何用了模数还过得去的,不是很懂

回复

0 条回复,欢迎继续交流。

正在加载回复...