社区讨论
就我而言
CF213E Two Permutations参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lwwzn6kx
- 此快照首次捕获于
- 2024/06/02 11:34 2 年前
- 此快照最后确认于
- 2024/06/02 14:24 2 年前
无论是写在线段树外求出除数的逆元进行操作
CPPfor(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的时候进行操作
CPPinfo 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 条回复,欢迎继续交流。
正在加载回复...