csp-s模拟测试59(10.4)「Reverse」(set)·「Silhouette」(容斥)

A. Reverse


菜鸡wwb又不会了.....

可以线段树优化建边,然而不会所以只能set水了

发现对于k和当前反转点固定的节点x确定奇偶性所到达的节点奇偶性是一定的

那么set维护奇偶点,然后每次set找点删点注意边界

set在删点后原来的迭代器会玄学出错,xuefeng好像被坑了,所以lowerbound一下就不用++了

B. Silhouette


很玄学的容斥

考场多QJ了18分,因为如果1-n是个序列,好像就是一个简单的容斥.....

然后用能发现是以“L”形的形状向右推的,随便乘一下就出来了....

正解的话就很困难了2333333

将a,b排序,没有影响。

然后发现对于某个节点单独考虑贡献,我们从大到小枚举值,然后当s<min(a[i],b[j])时

当前节点就可以贡献了,因为我们排过序所以每次的形状不是“L”型就是矩形

那么我们开始容斥了,然后与xuefeng看(tui)了一下午,最后看大佬WD博客,大概明白了。

其实对于一个L型矩形我们分成两部分,然后我们设f[i]表式至少有i行最大值不是s的方案

用二项式反演可以推出恰好0行的方案数,(然而还是不会二项式反演QAQ)

$f[i]=\sum\limits_{i=0}^{a}C_a^i \times (S^i \times ( (S+1)^{A-i} - S^{A-i} ) )^b \times ( S^i \times (S+1)^{a-i} )^{B-b}$

有时间再解释把...

猜你喜欢

转载自www.cnblogs.com/Wwb123/p/11623422.html